Arc helps engineering teams understand the context and history behind their code. This MCP server allows AI assistants to query your codebase's history and relationships using natural language, answering questions about architectural decisions, code evolution, and implementation rationale.
pip install mcp arc-memory
arc auth gh
This will guide you through authenticating with GitHub. You'll see a success message when complete.
arc auth linear
This will guide you through authenticating with Linear using OAuth 2.0. A browser window will open for you to authorize Arc Memory to access your Linear data.
arc build
This will analyze your repository and build a local knowledge graph. You'll see progress indicators and a summary of ingested entities when complete.
To include Linear issues in your knowledge graph:
arc build --linear
Open your configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json
%APPDATA%\Claude\claude_desktop_config.json
Add the server configuration:
{
"mcpServers": {
"arc-memory": {
"command": "python",
"args": ["/absolute/path/to/src/arc_mcp_server.py"]
}
}
}
Restart Claude Desktop
Install the VS Code Agent Mode extension
Configure the MCP server in your VS Code settings:
"anthropic.agent-mode.mcp.servers": {
"arc-memory": {
"command": "python",
"args": ["/absolute/path/to/src/arc_mcp_server.py"]
}
}
Arc provides several tools for querying your codebase:
Natural-language graph query for multi-hop questions.
Parameters:
question
: The natural language question to askmax_depth
(optional): Maximum depth for graph traversal (default: 3)max_results
(optional): Maximum number of results to return (default: 100)"What were the security considerations that led to our current authentication architecture?"
"Why did we migrate from monolith to microservices in Q3 2022, and what were the tradeoffs?"
"What performance issues drove the switch from Redis to our custom caching solution?"
"Which backend services were affected by the payment processing refactoring?"
"What downstream components depend on the authentication middleware we're planning to change?"
"How many different teams' code would be impacted if we deprecate the legacy API?"
"What previous attempts have we made to fix the intermittent test failures in the CI pipeline?"
"Which PRs have touched this fragile payment processing code in the last 6 months?"
"What was the root cause analysis of our last three production incidents?"
"What's the complete history of our authentication system from initial design to current implementation?"
"Who are the domain experts for each component of our data processing pipeline?"
"What were the key design decisions made before I joined the team that explain our current architecture?"
Arc builds a graph of your codebase's history, connecting structured data from different sources. The knowledge graph includes:
This interconnected structure enables tracing the complete story behind any line of codeāfrom the initial issue, through architectural decisions, to implementation PRs and commits.
There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json
file so that it is available in all of your projects.
If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json
file.
To add a global MCP server go to Cursor Settings > MCP and click "Add new global MCP server".
When you click that button the ~/.cursor/mcp.json
file will be opened and you can add your server like this:
{
"mcpServers": {
"cursor-rules-mcp": {
"command": "npx",
"args": [
"-y",
"cursor-rules-mcp"
]
}
}
}
To add an MCP server to a project you can create a new .cursor/mcp.json
file or add it to the existing one. This will look exactly the same as the global MCP server example above.
Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.
The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.
You can also explictly ask the agent to use the tool by mentioning the tool name and describing what the function does.