Skip to main content
ForgeCode ranks #1 on TermBench with 81.8% accuracy.Learn more →

.mcp.json

MCP lets ForgeCode connect agents to external tools, APIs, and services.

What MCP gives you

With MCP, your agents can:

  • Call external APIs and web services
  • Use specialized tools from local or remote servers
  • Automate browser workflows
  • Connect to internal services and data systems

Quick start

Start with one command, confirm it loaded, then use the tools.

forge mcp import '{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}'

forge mcp list

CLI command reference

forge mcp import

Import one or more MCP servers from a JSON string.

Usage

forge mcp import [OPTIONS] '<json_configuration>'

Options

  • -s, --scope <SCOPE>: local or user (default: local)
  • --porcelain: machine-readable output

Examples

Add multiple servers to local scope:

forge mcp import '{
"mcpServers": {
"context7": {
"url": "https://mcp.context7.com/sse"
},
"deepwiki": {
"url": "https://mcp.deepwiki.com/sse"
},
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}'

Add a server to user scope:

forge mcp import --scope user '{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}'

Typical output:

⏺ Added MCP server 'context7'
⏺ Added MCP server 'deepwiki'
⏺ Added MCP server 'playwright'

forge mcp list

List configured MCP servers.

Usage

forge mcp list

Options

  • --porcelain: machine-readable output

forge mcp show

Show full configuration for one server.

Usage

forge mcp show <server_name>

Options

  • --porcelain: machine-readable output

Shows command or URL, arguments, environment variables, and final resolved config.

forge mcp remove

Remove one MCP server from a selected scope.

Usage

forge mcp remove [OPTIONS] <server_name>

Options

  • -s, --scope <SCOPE>: local or user (default: local)
  • --porcelain: machine-readable output

Examples

# Remove from local project config
forge mcp remove playwright

# Remove from user config
forge mcp remove --scope user playwright

forge mcp reload

Reload MCP servers after configuration changes.

Usage

forge mcp reload

Options

  • --porcelain: machine-readable output

Use this after editing .mcp.json manually.

Manual configuration

If you prefer direct file editing, create or update .mcp.json.

{
"mcpServers": {
"browser_automation": {
"command": "npx",
"args": ["@modelcontextprotocol/server-browser"],
"env": {
"BROWSER_EXECUTABLE": "/usr/bin/chromium-browser"
}
},
"api_service": {
"command": "python",
"args": ["-m", "mcp_server", "--port", "3001"],
"env": {
"API_KEY": "your_api_key_here",
"DEBUG": "true"
}
},
"webhook_server": {
"url": "http://localhost:3000/events"
}
}
}

Server configuration types

Command-based server

{
"server_name": {
"command": "command_to_execute",
"args": ["arg1", "arg2", "arg3"],
"env": {
"ENV_VAR": "value",
"ANOTHER_VAR": "another_value"
}
}
}

URL-based server

{
"server_name": {
"url": "http://localhost:3000/events"
}
}

Scope and precedence

MCP configuration can exist in two places:

  1. Local scope: .mcp.json in the current project
  2. User scope: global ForgeCode config directory

Local scope wins over user scope when both define the same server.

Note Find your resolved configuration path by running /info in ForgeCode Shell.

Disable a server without deleting it

Set "disable": true on a server entry.

{
"mcpServers": {
"github": {
"url": "https://api.githubcopilot.com/mcp/",
"disable": true
},
"weather": {
"command": "node",
"args": ["weather-server.js"],
"disable": false
}
}
}

Behavior:

  • "disable": true: server is ignored and not loaded
  • "disable": false or omitted: server loads normally

How tools become available to agents

After you add a server, tool registration is automatic.

Add MCP server -> ForgeCode loads config -> Tools are registered -> All agents can use them

You do not need per-agent setup.

To verify which MCP tools are available to your current agent, run:

:tools

Use this whenever you switch agents and want to confirm the active tool list.

Example setups

Browser automation

{
"mcpServers": {
"browser": {
"command": "npx",
"args": ["@modelcontextprotocol/server-browser"],
"env": {
"HEADLESS": "false",
"VIEWPORT_WIDTH": "1920",
"VIEWPORT_HEIGHT": "1080"
}
}
}
}

Use this for UI testing, data extraction, and scripted page interactions.

External API integration

{
"mcpServers": {
"weather_api": {
"command": "python",
"args": ["-m", "weather_mcp_server"],
"env": {
"WEATHER_API_KEY": "your_api_key",
"DEFAULT_LOCATION": "San Francisco"
}
}
}
}

Use this for real-time data access and API-backed workflows.

Development tool integration

{
"mcpServers": {
"database_tools": {
"command": "node",
"args": ["database-mcp-server.js"],
"env": {
"DB_CONNECTION_STRING": "postgresql://user:pass@localhost:5432/db",
"QUERY_TIMEOUT": "30000"
}
}
}
}

Use this for database operations, schema work, and migration tooling.

Security checklist

  • Store secrets in environment variables, not inline config
  • Grant minimum server permissions
  • Prefer HTTPS for URL-based servers
  • Rotate API keys and access tokens regularly

Troubleshooting

Server connection failures

  • Verify server URL and port
  • Check network reachability
  • Confirm required environment variables
  • Validate credentials and tokens

Command execution failures

  • Verify command path and arguments
  • Check runtime dependencies
  • Confirm file permissions
  • Re-check environment variables

Configuration issues

  • Validate .mcp.json syntax
  • Confirm local vs user scope expectations
  • Check whether the server is disabled
  • Run forge mcp list to confirm loaded servers

What to do next

Add one server you need today, verify it with forge mcp list, and use it in your next agent session. That gives you the fastest path to a real MCP workflow.