MCP Plugins

MCP (Model Context Protocol) plugins connect external tools and services to your agents. This guide covers supported integrations, configuration patterns, and how MCPs work at different levels.

For basic MCP concepts, see What Are MCP Servers?. For installation, see Installing MCP Servers.


Two Levels of MCP Attachment

MCPs can be attached at two levels, and when an agent chats in a space, it gets the union of both:

LevelHowAvailable To
Agent levelVia mcpInstanceIds on the agentFollows the agent everywhere — org chat, any space
Space levelVia mcpRefs on the spaceAvailable to all agents chatting in that space

When an agent chats in a space, it gets access to both its own MCPs and the space’s MCPs. When an agent chats at the org level (no space), it only gets its own agent-level MCPs.


Supported Integrations

SEO

IntegrationWhat It Provides
AhrefsBacklink analysis, keyword research, site audit, rank tracking
Google Search ConsoleSearch impressions, clicks, CTR, keyword positions
SE RankingKeyword tracking, competitor analysis, site audit

Analytics

IntegrationWhat It Provides
Google AnalyticsGA4 traffic data, page metrics, user behavior

CMS

IntegrationWhat It Provides
WordPressPost management, content publishing (self-hosted and .com)

Database

IntegrationWhat It Provides
PostgreSQLQuery and manage PostgreSQL databases
MySQLQuery and manage MySQL databases
BigQueryGoogle BigQuery data warehouse queries
FirestoreGoogle Cloud Firestore document database
Cloud SQLGoogle Cloud SQL managed databases
SQLiteLocal SQLite database access
MongoDBMongoDB document database queries
ClickHouseClickHouse analytics database
Neo4jNeo4j graph database queries
SnowflakeSnowflake data warehouse queries
ElasticsearchElasticsearch search and analytics
MSSQLMicrosoft SQL Server queries

Advertising

IntegrationWhat It Provides
Meta AdsFacebook/Instagram ad campaign management and reporting
Google AdsGoogle Ads campaign management and reporting

Communication

IntegrationWhat It Provides
BrevoTransactional and marketing email via Brevo API
IntegrationWhat It Provides
Brave SearchWeb search via Brave Search API
DataForSEOSERP data, keyword metrics, competitor analysis
ExaNeural search for finding relevant content

Generic

IntegrationWhat It Provides
Any MCP via URLConnect any MCP server using mcp-oauth with auto-discovery

Transport Types

MCPs communicate using one of two transport protocols:

TransportDescriptionUse Case
stdioLocal process executionMost MCPs — runs as a child process in the sandbox
streamable-httpRemote HTTP-based connectionOAuth MCPs like Ahrefs, Google Search Console — connects to a remote server

OAuth MCP Integrations

Some MCP servers require OAuth authentication to access user data (e.g., Google Analytics, Google Search Console, Ahrefs).

How OAuth MCPs Work

  1. You install the MCP on a space or agent
  2. The web app shows a Connect button
  3. You authenticate with the external service via OAuth in the browser
  4. Tokens are stored encrypted and refreshed automatically

Token Lifecycle

  • OAuth tokens are stored encrypted per-space
  • Access tokens are refreshed automatically before expiration
  • If a token expires or is revoked, the UI prompts you to reconnect

MCP Configuration via API

Create MCP Instance

curl -X POST "https://cc.teamday.ai/api/v1/mcps" \
  -H "Authorization: Bearer $TEAMDAY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "custom-api",
    "type": "stdio",
    "command": "node",
    "args": ["dist/index.js"],
    "env": {
      "API_KEY": "your-api-key"
    }
  }'

Update MCP Configuration

curl -X PATCH "https://cc.teamday.ai/api/v1/mcps/<id>" \
  -H "Authorization: Bearer $TEAMDAY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "env": {
      "API_KEY": "new-api-key"
    }
  }'

Attach MCP to an Agent

curl -X PATCH "https://cc.teamday.ai/api/v1/agents/<agent-id>" \
  -H "Authorization: Bearer $TEAMDAY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"addMcpInstanceIds": ["mcp-id-1"]}'

Attach MCP to a Space

curl -X PATCH "https://cc.teamday.ai/api/v1/spaces/<space-id>" \
  -H "Authorization: Bearer $TEAMDAY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"addMcps": ["mcp-id-1"]}'

Configuration Patterns

Environment Variable References

In .mcp.json, reference Space secrets with ${VAR_NAME}:

{
  "mcpServers": {
    "database": {
      "command": "npx",
      "args": ["-y", "@anthropic-ai/mcp-postgres", "${DATABASE_URL}"]
    },
    "api-tool": {
      "command": "node",
      "args": ["tools/api/index.js"],
      "env": {
        "API_KEY": "${API_KEY}",
        "API_SECRET": "${API_SECRET}"
      }
    }
  }
}

Store the actual values as secrets:

teamday spaces set-secret <space-id> \
  DATABASE_URL=postgres://user:pass@host/db \
  API_KEY=abc123 \
  API_SECRET=xyz789

Multiple MCP Servers

A Space can have many MCP servers. Each runs as a separate process:

{
  "mcpServers": {
    "google-analytics": {
      "command": "npx",
      "args": ["-y", "@anthropic-ai/mcp-google-analytics"],
      "env": {"GA_PROPERTY_ID": "${GA_PROPERTY_ID}"}
    },
    "postgres": {
      "command": "npx",
      "args": ["-y", "@anthropic-ai/mcp-postgres", "${DATABASE_URL}"]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@anthropic-ai/mcp-github"],
      "env": {"GITHUB_TOKEN": "${GITHUB_TOKEN}"}
    }
  }
}

Disabling Tools

If an MCP provides tools you don’t want agents to use, disable them at the Space level:

curl -X PATCH "https://cc.teamday.ai/api/v1/spaces/<space-id>" \
  -H "Authorization: Bearer $TEAMDAY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"disabledTools": ["mcp__github__create_issue"]}'

Programmatic vs File-Based

ApproachHowBest For
API/CLIteamday mcps createOrg-wide MCP instances, managed centrally
.mcp.jsonFile in Space rootPer-Space configuration, version controlled

Programmatic MCPs (via API) override file-based MCPs with the same name.


Next Steps