Architect supports the Model Context Protocol (MCP) for connecting external tool servers. MCP servers expose additional tools that the model can use alongside Architect's built-in tools.
MCP servers are configured in .mcp.json files:
- Global:
~/.architect/.mcp.json-- available in all projects - Project:
.mcp.jsonin the project root -- scoped to that project
Both files are loaded and merged. Project servers override global ones with the same name.
{
"mcpServers": {
"server-name": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/data"],
"env": {
"API_KEY": "${MY_API_KEY}"
}
}
}
}Launches a local process and communicates via stdin/stdout:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"]
},
"sqlite": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "./data.db"]
}
}
}| Field | Required | Description |
|---|---|---|
command |
Yes | Executable to launch |
args |
No | Command-line arguments |
env |
No | Environment variables for the process |
Connects to a remote MCP server over HTTP:
{
"mcpServers": {
"remote-tools": {
"url": "https://mcp.example.com/tools",
"headers": {
"Authorization": "Bearer ${MCP_TOKEN}"
}
}
}
}| Field | Required | Description |
|---|---|---|
url |
Yes | Server endpoint URL |
headers |
No | HTTP headers (e.g., authentication) |
Legacy transport -- same schema as HTTP but uses SSE for streaming:
{
"mcpServers": {
"sse-server": {
"url": "https://mcp.example.com/sse",
"headers": {}
}
}
}All string values in the config support environment variable substitution:
| Syntax | Behavior |
|---|---|
${VAR} |
Expands to the value of VAR. Empty if unset |
${VAR:-default} |
Expands to VAR if set, otherwise default |
{
"mcpServers": {
"my-server": {
"command": "node",
"args": ["${HOME}/tools/server.js"],
"env": {
"API_KEY": "${MY_API_KEY:-sk-default}",
"PORT": "${MCP_PORT:-3001}"
}
}
}
}MCP servers can be in one of these states:
| Status | Meaning |
|---|---|
| Connected | Successfully connected, tools available |
| Failed | Connection error (logged with details) |
| Disabled | Server disabled in config |
| Disconnected | Not yet connected |
- On startup, Architect reads
.mcp.jsonfiles - Connects to each configured server
- Discovers available tools via the MCP protocol
- Registers discovered tools alongside built-in tools
- The model can use MCP tools like any other tool
MCP tools follow the same permission system as built-in tools. Tool names from MCP servers are prefixed with the server name to avoid conflicts (e.g., filesystem:read_file).
{
"mcpServers": {
"fs": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/data"]
}
}
}{
"mcpServers": {
"db": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "./app.db"]
}
}
}{
"mcpServers": {
"internal-api": {
"url": "https://internal.company.com/mcp",
"headers": {
"Authorization": "Bearer ${INTERNAL_TOKEN}"
}
}
}
}