How to Add a Custom MCP Server Connector to the financial-analysis Plugin

To add a custom MCP server connector to the financial-analysis plugin, edit the .mcp.json manifest file in plugins/vertical-plugins/financial-analysis/ to register your HTTP endpoint, optionally configure authentication via environment variables, and reference the connector key in your skills.

The anthropics/financial-services repository implements a declarative plugin architecture where MCP (Model-Context-Protocol) connectors are registered through JSON configuration rather than code changes. The financial-analysis vertical plugin acts as the central registry for all MCP servers, allowing you to add custom connectors that become immediately available to skills across the entire suite of financial services plugins.

Locate the MCP Manifest File

The plugin maintains its server registry in plugins/vertical-plugins/financial-analysis/.mcp.json. This manifest contains a top-level mcpServers object that maps human-readable keys to HTTP endpoints and authentication settings.

The current structure includes entries like:

{
  "mcpServers": {
    "daloopa": {
      "type": "http",
      "url": "https://mcp.daloopa.com/server/mcp"
    },
    "morningstar": {
      "type": "http",
      "url": "https://mcp.morningstar.com/mcp"
    }
  }
}

Configure Your Custom Connector Entry

Add a new object under mcpServers using a unique identifier as the key. Each connector requires:

  • type: Currently only http is supported.
  • url: The full HTTPS endpoint for your MCP server.
  • authToken (optional): The name of an environment variable containing a bearer token.

Example configuration for a custom connector:

{
  "mcpServers": {
    "daloopa": { "type": "http", "url": "https://mcp.daloopa.com/server/mcp" },
    "morningstar": { "type": "http", "url": "https://mcp.morningstar.com/mcp" },
    "my-custom-connector": {
      "type": "http",
      "url": "https://my-mcp.example.com/api",
      "authToken": "MY_MCP_TOKEN"
    }
  }
}

If your server requires authentication, export the token in your environment before running the plugin:

export MY_MCP_TOKEN="sk-live-your-token-here"

The plugin runtime reads this via process.env.MY_MCP_TOKEN and injects it as a bearer header.

Validate the Manifest Configuration

Run the repository linting script to verify JSON syntax and required fields:

python3 scripts/check.py

This utility validates that all .mcp.json files contain valid JSON, include mandatory fields (type, url), and properly reference environment variables when authToken is specified.

Use the Connector in Skills

Reference your custom connector by its manifest key inside skill templates using the MCP helper syntax:

{{#mcp "my-custom-connector"}}
{
  "ticker": "{{ticker}}",
  "date": "{{as_of_date}}"
}
{{/mcp}}

Replace my-custom-connector with your configured key. The plugin routing layer automatically resolves this key to the URL defined in the manifest—no additional code changes are required.

Deploy Your Changes

Stage and commit the updated manifest:

git add plugins/vertical-plugins/financial-analysis/.mcp.json
git commit -m "Add custom MCP connector: my-custom-connector"
git push

The connector becomes available immediately to any agent loading the financial-analysis plugin.

Share Across Vertical Plugins

The financial-analysis plugin serves as the core vertical plugin for the repository. Other vertical plugins—including wealth-management and equity-research—read from the same .mcp.json manifest. By adding your connector once in the financial-analysis plugin, every dependent plugin can immediately invoke the new MCP endpoint without additional configuration.

Summary

  • Edit plugins/vertical-plugins/financial-analysis/.mcp.json to register new MCP servers under the mcpServers object.
  • Configure type, url, and optional authToken fields for HTTP endpoints.
  • Validate changes using python3 scripts/check.py to catch JSON syntax errors and missing fields.
  • Reference connectors in skills using the {{#mcp "key"}} syntax.
  • Changes propagate automatically to all vertical plugins sharing the core manifest.

Frequently Asked Questions

Do I need to modify any TypeScript or Python code to add a custom MCP connector?

No. The financial-analysis plugin uses a purely declarative configuration approach. Adding an entry to .mcp.json registers the connector with the routing layer automatically, as the plugin code dynamically reads this manifest at runtime to resolve MCP calls.

How do I handle authentication for my custom MCP server?

Add an authToken field to your connector configuration in .mcp.json, setting its value to the name of an environment variable. The plugin automatically injects this token as a bearer header when calling your endpoint. Define the actual token value in a .env file or export it directly in your shell using export.

Can I use the same custom connector across multiple vertical plugins?

Yes. The financial-analysis plugin serves as the core vertical plugin, and other plugins like wealth-management and equity-research reference the same .mcp.json manifest. Adding your connector once makes it available to all dependent plugins immediately without redundant configuration files.

What validation is performed by the check.py script?

The scripts/check.py utility verifies that all .mcp.json files contain valid JSON, include required fields (type, url), and reference existing environment variables when authToken is specified. Run this locally before committing to prevent runtime errors in production agents.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →