Predefined, custom,
or any MCP server
A growing catalog provides typed, tested tools. Custom tools are plain Python functions, while MCP servers make their tools available to every agent in the project.
Read the tools docsTools
6 attached- Custominvoices.parse_pdf
- Custominvoices.store
- Predefinedweb_search
- MCPlinear.create_issue
- MCPcontext7.search_docs
- Custombilling.calculate_vat
Tools teams otherwise reimplement
A built-in catalog for the things every agent needs: semantic retrieval, the project database, agent-to-agent orchestration, and web access.
retrieval_querySearch the retrieval for relevant information.
retrieval_storeQueue new information for retrieval indexing.
retrieval_deleteRemove entries from the retrieval.
retrieval_list_namespacesList retrieval namespaces and their hierarchy.
db_findQuery documents from a collection using filters.
db_insertInsert one or more documents into a collection.
db_updateUpdate documents matching a filter.
db_upsertUpdate the first matching document, or insert a new one when none matches.
db_deleteDelete documents matching a filter.
db_countCount documents in a collection, optionally filtered.
db_list_collectionsList collections with counts and storage sizes.
trigger_agentTrigger another agent within the same project.
trigger_agent_atSchedule an agent to run at a future time.
web_searchSearch the web for real-time information.
web_read_pageFetch a web page and return its content as markdown.
web_browser_openOpen a browser session.
web_browser_observeRead page content and available controls.
web_browser_screenshotShow the agent a screenshot of the browser viewport.
web_browser_actClick, type, use keyboard shortcuts, and navigate.
web_browser_mouseMove, click, double-click, drag, and scroll at viewport coordinates.
web_browser_tabsList, open, switch, and close browser tabs and popups.
web_browser_dialogAccept or dismiss browser dialogs and enter prompt text.
web_browser_uploadUpload a file previously downloaded in the same browser session.
web_browser_downloadDownload a file for reuse and optionally return it as an attachment.
web_browser_closeClose the browser and settle its usage.
A Python function is a tool
Plain functions in tools/. Type hints and a docstring are everything Connic needs to expose them to an agent.
from datetime import date
def calculate_late_fee(
invoice_total: float,
due_date: date,
paid_date: date,
) -> dict:
"""Compute the late fee for an overdue invoice.
Args:
invoice_total: The original invoice total in dollars
due_date: The original due date
paid_date: The date the invoice was paid
Returns:
Dict with the fee amount in cents and the days overdue.
"""
days_overdue = max(0, (paid_date - due_date).days)
fee_cents = int(invoice_total * 100 * 0.015 * days_overdue)
return {"fee_cents": fee_cents, "days_overdue": days_overdue}The agent sees a typed JSON schema generated from the function signature. No decorators, no manual schema authoring.
The LLM uses the function docstring to decide when to call the tool. Parameters documented under Args help the model select the right one.
A file in the tools/ directory is referenced as module.function in the agent YAML. Wildcards such as calculator.* work too.
Any MCP server, every agent
Servers listed under mcp_servers in the agent YAML connect through Connic, which discovers their tools and exposes them to the LLM at runtime.
support-triagemcp_servers:
- name: context7
url: https://mcp.context7.com/mcp
- name: research-hub
url: https://mcp.example.com/research
headers:
Authorization: "Bearer ${RESEARCH_TOKEN}"
tools:
- search_papers
- fetch_abstract
- name: internal-tools
url: https://mcp.internal.company.com/tools
headers:
Authorization: "Bearer ${INTERNAL_TOKEN}"
discoverable: true # indexed for on-demand search, not loaded upfrontProduction primitives, per call
Predefined, custom, and MCP tools all share the same discovery, observability, and lifecycle semantics.
A Python file in tools/ is referenced as module.function in the agent YAML. Subfolders and wildcards (calculator.*) both work.
StopProcessing from a tool ends the run successfully with a final message, while AbortTool from a hook skips a single call.
Every tool call shows up in run details with inputs, output, and duration. Prints, stderr, and tools.* loggers stream to the Logs tab.
Rarely used tools or whole MCP servers can be marked as discoverable. They stay out of the LLM context until the agent searches for them by description.