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

> Add a custom MCP server connector to the financial-analysis plugin by editing the .mcp.json manifest file. Configure authentication and reference the connector key in your skills.

- Repository: [Anthropic/financial-services](https://github.com/anthropics/financial-services)
- Tags: how-to-guide
- Published: 2026-05-07

---

**To add a custom MCP server connector to the financial-analysis plugin, edit the [`.mcp.json`](https://github.com/anthropics/financial-services/blob/main/.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`](https://github.com/anthropics/financial-services/blob/main/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:

```json
{
  "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:

```json
{
  "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:

```bash
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:

```bash
python3 scripts/check.py

```

This utility validates that all [`.mcp.json`](https://github.com/anthropics/financial-services/blob/main/.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:

```markdown
{{#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:

```bash
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`](https://github.com/anthropics/financial-services/blob/main/.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`](https://github.com/anthropics/financial-services/blob/main/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`](https://github.com/anthropics/financial-services/blob/main/.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`](https://github.com/anthropics/financial-services/blob/main/.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`](https://github.com/anthropics/financial-services/blob/main/.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`](https://github.com/anthropics/financial-services/blob/main/scripts/check.py) utility verifies that all [`.mcp.json`](https://github.com/anthropics/financial-services/blob/main/.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.