Skip to content

MCP Tools

Nova supports the Model Context Protocol (MCP) for extending agent capabilities with external tool servers. MCP servers run as subprocesses managed by the Orchestrator, and their tools become available to all agents automatically.

The Model Context Protocol is an open standard for connecting AI models to external tools and data sources. An MCP server exposes a set of tools (functions) that agents can call during their execution. Nova’s Orchestrator connects to MCP servers at startup and makes their tools available alongside the built-in tools (file I/O, shell, git).

  1. The Orchestrator loads MCP server configurations from the database at startup
  2. It connects to each enabled server and discovers its available tools
  3. When an agent runs, get_all_tools() returns both built-in tools and MCP tools
  4. The agent can call any MCP tool by name (prefixed with mcp__<server>__<tool>)
  5. The Orchestrator dispatches the call to the appropriate MCP server and returns the result

Nova ships with a built-in catalog of pre-configured MCP servers. You can add any of these from the Dashboard’s MCP page with one click.

ServerDescriptionPackage
FilesystemRead, write, and navigate files@modelcontextprotocol/server-filesystem
GitInspect and operate on Git repositories — log, diff, status, commitmcp-server-git (uvx)
MemoryPersistent key-value memory store that survives across sessions@modelcontextprotocol/server-memory
ServerDescriptionPackage
GitHubManage repos, issues, pull requests, and code search@modelcontextprotocol/server-github
GitLabInteract with GitLab projects, merge requests, and issues@modelcontextprotocol/server-gitlab
ServerDescriptionPackage
Brave SearchWeb and local search via the Brave Search API@modelcontextprotocol/server-brave-search
FetchFetch URLs and convert web pages to Markdownmcp-server-fetch (uvx)
PuppeteerBrowser automation — screenshot, click, fill forms, scrape@modelcontextprotocol/server-puppeteer
ServerDescriptionPackage
PostgreSQLQuery a PostgreSQL database@modelcontextprotocol/server-postgres
SQLiteRead and query SQLite database files@modelcontextprotocol/server-sqlite
ServerDescriptionPackage
Sequential ThinkingStructured multi-step reasoning for complex problem decomposition@modelcontextprotocol/server-sequential-thinking
ServerDescriptionPackage
SlackRead channels, send messages, and search Slack workspaces@modelcontextprotocol/server-slack
ServerDescriptionPackage
CloudflareManage Workers, KV, R2, D1, DNS, and Tunnels@cloudflare/mcp-server-cloudflare
TailscaleManage devices, ACLs, DNS, and network configuration@hexsleeves/tailscale-mcp-server
  1. Navigate to MCP in the Dashboard sidebar
  2. Click Add from Catalog to browse available servers
  3. Select a server and fill in any required configuration (API keys, paths)
  4. Click Add — the Orchestrator will connect to the server and discover its tools
  5. The server’s tools are immediately available to all agents

You can register any MCP server, not just those in the catalog. From the Dashboard’s MCP page:

  1. Click Add Custom Server
  2. Provide the server name, command, arguments, and any environment variables
  3. The Orchestrator will attempt to connect and discover tools

Or via the API:

Terminal window
curl -X POST http://localhost:8000/api/v1/mcp-servers \
-H "X-Admin-Secret: your-admin-secret" \
-H "Content-Type: application/json" \
-d '{
"name": "my-server",
"command": "npx",
"args": ["-y", "@my-org/mcp-server-custom"],
"env": {"API_KEY": "..."},
"enabled": true
}'
ActionAPIDashboard
List serversGET /api/v1/mcp-serversMCP page
Add serverPOST /api/v1/mcp-serversAdd from Catalog / Add Custom
Update configPATCH /api/v1/mcp-servers/{id}Edit button
Remove serverDELETE /api/v1/mcp-servers/{id}Delete button
ReconnectPOST /api/v1/mcp-servers/{id}/reloadReload button

Some MCP servers require API keys or configuration via environment variables. These are set per-server and passed to the subprocess when it starts. Required variables for catalog entries are documented in the catalog and prompted during setup.

ServerRequired variables
Brave SearchBRAVE_API_KEY
GitHubGITHUB_PERSONAL_ACCESS_TOKEN
GitLabGITLAB_PERSONAL_ACCESS_TOKEN, optionally GITLAB_API_URL
SlackSLACK_BOT_TOKEN, SLACK_TEAM_ID
CloudflareCLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_ID
TailscaleTAILSCALE_API_KEY, TAILSCALE_TAILNET