Skip to main content

MCP servers

Overview​

Model Context Protocol (MCP) servers provide additional tools and context to Faheem Code agents. You can add HTTP/SSE servers with authentication or stdio-based local servers to extend what Faheem Code can do.

The CLI provides two ways to manage MCP servers:

  1. CLI commands (faheemcode mcp) - Manage servers from the command line
  2. Interactive command (/mcp) - View server status within a conversation

MCP commands​

List servers​

View all configured MCP servers:

faheemcode mcp list

Get server details​

View details for a specific server:

faheemcode mcp get <server-name>

Remove a server​

Remove a server configuration:

faheemcode mcp remove <server-name>

Enable/Disable servers​

Control which servers are active:

# Enable a server
faheemcode mcp enable <server-name>

# Disable a server
faheemcode mcp disable <server-name>

Adding servers​

HTTP/SSE servers​

Add remote servers with HTTP or SSE transport:

faheemcode mcp add <name> --transport http <url>

With Bearer token authentication​

faheemcode mcp add my-api --transport http \
--header "Authorization: Bearer your-token" \
https://api.example.com/mcp

With API key authentication​

faheemcode mcp add weather-api --transport http \
--header "X-API-Key: your-api-key" \
https://weather.api.com

With multiple headers​

faheemcode mcp add secure-api --transport http \
--header "Authorization: Bearer token123" \
--header "X-Client-ID: client456" \
https://api.example.com

With OAuth authentication​

faheemcode mcp add notion-server --transport http \
--auth oauth \
https://mcp.notion.com/mcp

Stdio servers​

Add local servers that communicate via stdio:

faheemcode mcp add <name> --transport stdio <command> -- [args...]

Basic example​

faheemcode mcp add local-server --transport stdio \
python -- -m my_mcp_server

With environment variables​

faheemcode mcp add local-server --transport stdio \
--env "API_KEY=secret123" \
--env "DATABASE_URL=postgresql://localhost/mydb" \
python -- -m my_mcp_server --config config.json

Add in disabled state​

faheemcode mcp add my-server --transport stdio --disabled \
node -- my-server.js

Command reference​

faheemcode mcp add <name> --transport <type> [options] <target> [-- args...]
OptionDescription
--transportTransport type: http, sse, or stdio (required)
--headerHTTP header for http/sse (format: "Key: Value", repeatable)
--envEnvironment variable for stdio (format: KEY=value, repeatable)
--authAuthentication method (e.g., oauth)
--enabledEnable immediately (default)
--disabledAdd in disabled state

Example: web search with Tavily​

Add web search capability using Tavily's MCP server:

faheemcode mcp add tavily --transport stdio \
npx -- -y mcp-remote "https://mcp.tavily.com/mcp/?tavilyApiKey=<your-api-key>"

Manual configuration​

You can also manually edit the MCP configuration file at ~/.faheem-code/mcp.json.

Configuration format​

The file uses the MCP configuration format:

{
"mcpServers": {
"server-name": {
"command": "command-to-run",
"args": ["arg1", "arg2"],
"env": {
"ENV_VAR": "value"
}
}
}
}

Example configuration​

{
"mcpServers": {
"tavily-remote": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.tavily.com/mcp/?tavilyApiKey=your-api-key"
]
},
"local-tools": {
"command": "python",
"args": ["-m", "my_mcp_tools"],
"env": {
"DEBUG": "true"
}
}
}
}

Interactive /mcp command​

Within an Faheem Code conversation, use /mcp to view server status:

  • View active servers: Shows which MCP servers are currently active in the conversation
  • View pending changes: If mcp.json has been modified, shows which servers will be mounted when the conversation restarts

Workflow​

  1. Add servers using faheemcode mcp add
  2. Start a conversation with faheemcode
  3. Check status with /mcp inside the conversation
  4. Use the tools provided by your MCP servers

The agent will automatically have access to tools provided by enabled MCP servers.

Troubleshooting​

Server not appearing​

  1. Verify the server is enabled:

    faheemcode mcp list
  2. Check the configuration:

    faheemcode mcp get <server-name>
  3. Restart the conversation to load new configurations

Server fails to start​

  1. Test the command manually:

    # For stdio servers
    python -m my_mcp_server

    # For HTTP servers, check the URL is reachable
    curl https://api.example.com/mcp
  2. Check environment variables and credentials

  3. Review error messages in the CLI output

Configuration file location​

The MCP configuration is stored at:

  • Config file: ~/.faheem-code/mcp.json

See also​