Minimal MCP Server for Aider
What is disler aider mcp server
Aider MCP Server - Experimental
Model context protocol server for offloading AI coding work to Aider, enhancing development efficiency and flexibility.
Overview
This server allows Claude Code to offload AI coding tasks to Aider, the best open source AI coding assistant. By delegating certain coding tasks to Aider, we can reduce costs, gain control over our coding model and operate Claude Code in a more orchestrative way to review and revise code.
Setup
- Clone the repository:
git clone https://github.com/disler/aider-mcp-server.git
- Install dependencies:
uv sync
- Create your environment file:
cp .env.sample .env
- Configure your API keys in the
.env
file (or use the mcpServers "env" section) to have the api key needed for the model you want to use in aider:
GEMINI_API_KEY=your_gemini_api_key_here
OPENAI_API_KEY=your_openai_api_key_here
ANTHROPIC_API_KEY=your_anthropic_api_key_here
...see .env.sample for more
- Copy and fill out the the
.mcp.json
into the root of your project and update the--directory
to point to this project's root directory and the--current-working-dir
to point to the root of your project.
{
"mcpServers": {
"aider-mcp-server": {
"type": "stdio",
"command": "uv",
"args": [
"--directory",
"<path to this project>",
"run",
"aider-mcp-server",
"--editor-model",
"gpt-4o",
"--current-working-dir",
"<path to your project>"
],
"env": {
"GEMINI_API_KEY": "<your gemini api key>",
"OPENAI_API_KEY": "<your openai api key>",
"ANTHROPIC_API_KEY": "<your anthropic api key>",
...see .env.sample for more
}
}
}
}
Testing
Tests run with gemini-2.5-pro-exp-03-25
To run all tests:
uv run pytest
To run specific tests:
# Test listing models
uv run pytest src/aider_mcp_server/tests/atoms/tools/test_aider_list_models.py
# Test AI coding
uv run pytest src/aider_mcp_server/tests/atoms/tools/test_aider_ai_code.py
Note: The AI coding tests require a valid API key for the Gemini model. Make sure to set it in your .env
file before running the tests.
Add this MCP server to Claude Code
Add with gemini-2.5-pro-exp-03-25
claude mcp add aider-mcp-server -s local \
-- \
uv --directory "<path to the aider mcp server project>" \
run aider-mcp-server \
--editor-model "gemini/gemini-2.5-pro-exp-03-25" \
--current-working-dir "<path to your project>"
Add with gemini-2.5-pro-preview-03-25
claude mcp add aider-mcp-server -s local \
-- \
uv --directory "<path to the aider mcp server project>" \
run aider-mcp-server \
--editor-model "gemini/gemini-2.5-pro-preview-03-25" \
--current-working-dir "<path to your project>"
Add with quasar-alpha
claude mcp add aider-mcp-server -s local \
-- \
uv --directory "<path to the aider mcp server project>" \
run aider-mcp-server \
--editor-model "openrouter/openrouter/quasar-alpha" \
--current-working-dir "<path to your project>"
Add with llama4-maverick-instruct-basic
claude mcp add aider-mcp-server -s local \
-- \
uv --directory "<path to the aider mcp server project>" \
run aider-mcp-server \
--editor-model "fireworks_ai/accounts/fireworks/models/llama4-maverick-instruct-basic" \
--current-working-dir "<path to your project>"
Usage
This MCP server provides the following functionalities:
-
Offload AI coding tasks to Aider:
- Takes a prompt and file paths
- Uses Aider to implement the requested changes
- Returns success or failure
-
List available models:
- Provides a list of models matching a substring
- Useful for discovering supported models
Available Tools
This MCP server exposes the following tools:
1. aider_ai_code
This tool allows you to run Aider to perform AI coding tasks based on a provided prompt and specified files.
Parameters:
ai_coding_prompt
(string, required): The natural language instruction for the AI coding task.relative_editable_files
(list of strings, required): A list of file paths (relative to thecurrent_working_dir
) that Aider is allowed to modify. If a file doesn't exist, it will be created.relative_readonly_files
(list of strings, optional): A list of file paths (relative to thecurrent_working_dir
) that Aider can read for context but cannot modify. Defaults to an empty list[]
.model
(string, optional): The primary AI model Aider should use for generating code. Defaults to"gemini/gemini-2.5-pro-exp-03-25"
. You can use thelist_models
tool to find other available models.editor_model
(string, optional): The AI model Aider should use for editing/refining code, particularly when using architect mode. If not provided, the primarymodel
might be used depending on Aider's internal logic. Defaults toNone
.
Example Usage (within an MCP request):
Claude Code Prompt:
Use the Aider AI Code tool to: Refactor the calculate_sum function in calculator.py to handle potential TypeError exceptions.
Result:
{
"name": "aider_ai_code",
"parameters": {
"ai_coding_prompt": "Refactor the calculate_sum function in calculator.py to handle potential TypeError exceptions.",
"relative_editable_files": ["src/calculator.py"],
"relative_readonly_files": ["docs/requirements.txt"],
"model": "openai/gpt-4o"
}
}
Returns:
- A simple dict: {success, diff}
success
: boolean - Whether the operation was successful.diff
: string - The diff of the changes made to the file.
2. list_models
This tool lists available AI models supported by Aider that match a given substring.
Parameters:
substring
(string, required): The substring to search for within the names of available models.
Example Usage (within an MCP request):
Claude Code Prompt:
Use the Aider List Models tool to: List models that contain the substring "gemini".
Result:
{
"name": "list_models",
"parameters": {
"substring": "gemini"
}
}
Returns:
- A list of model name strings that match the provided substring. Example:
["gemini/gemini-1.5-flash", "gemini/gemini-1.5-pro", "gemini/gemini-pro"]
Architecture
The server is structured as follows:
- Server layer: Handles MCP protocol communication
- Atoms layer: Individual, pure functional components
- Tools: Specific capabilities (AI coding, listing models)
- Utils: Constants and helper functions
- Data Types: Type definitions using Pydantic
All components are thoroughly tested for reliability.
Codebase Structure
The project is organized into the following main directories and files:
.
โโโ ai_docs # Documentation related to AI models and examples
โ โโโ just-prompt-example-mcp-server.xml
โ โโโ programmable-aider-documentation.md
โโโ pyproject.toml # Project metadata and dependencies
โโโ README.md # This file
โโโ specs # Specification documents
โ โโโ init-aider-mcp-exp.md
โโโ src # Source code directory
โ โโโ aider_mcp_server # Main package for the server
โ โโโ __init__.py # Package initializer
โ โโโ __main__.py # Main entry point for the server executable
โ โโโ atoms # Core, reusable components (pure functions)
โ โ โโโ __init__.py
โ โ โโโ data_types.py # Pydantic models for data structures
โ โ โโโ logging.py # Custom logging setup
โ โ โโโ tools # Individual tool implementations
โ โ โ โโโ __init__.py
โ โ โ โโโ aider_ai_code.py # Logic for the aider_ai_code tool
โ โ โ โโโ aider_list_models.py # Logic for the list_models tool
โ โ โโโ utils.py # Utility functions and constants (like default models)
โ โโโ server.py # MCP server logic, tool registration, request handling
โ โโโ tests # Unit and integration tests
โ โโโ __init__.py
โ โโโ atoms # Tests for the atoms layer
โ โโโ __init__.py
โ โโโ test_logging.py # Tests for logging
โ โโโ tools # Tests for the tools
โ โโโ __init__.py
โ โโโ test_aider_ai_code.py # Tests for AI coding tool
โ โโโ test_aider_list_models.py # Tests for model listing tool
src/aider_mcp_server
: Contains the main application code.atoms
: Holds the fundamental building blocks. These are designed to be pure functions or simple classes with minimal dependencies.tools
: Each file here implements the core logic for a specific MCP tool (aider_ai_code
,list_models
).utils.py
: Contains shared constants like default model names.data_types.py
: Defines Pydantic models for request/response structures, ensuring data validation.logging.py
: Sets up a consistent logging format for console and file output.
server.py
: Orchestrates the MCP server. It initializes the server, registers the tools defined in theatoms/tools
directory, handles incoming requests, routes them to the appropriate tool logic, and sends back responses according to the MCP protocol.__main__.py
: Provides the command-line interface entry point (aider-mcp-server
), parsing arguments like--editor-model
and starting the server defined inserver.py
.tests
: Contains tests mirroring the structure of thesrc
directory, ensuring that each component (especially atoms) works as expected.
Leave a Comment
Frequently Asked Questions
What is MCP?
MCP (Model Context Protocol) is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications, providing a standardized way to connect AI models to different data sources and tools.
What are MCP Servers?
MCP Servers are lightweight programs that expose specific capabilities through the standardized Model Context Protocol. They act as bridges between LLMs like Claude and various data sources or services, allowing secure access to files, databases, APIs, and other resources.
How do MCP Servers work?
MCP Servers follow a client-server architecture where a host application (like Claude Desktop) connects to multiple servers. Each server provides specific functionality through standardized endpoints and protocols, enabling Claude to access data and perform actions through the standardized protocol.
Are MCP Servers secure?
Yes, MCP Servers are designed with security in mind. They run locally with explicit configuration and permissions, require user approval for actions, and include built-in security features to prevent unauthorized access and ensure data privacy.
Related MCP Servers
chrisdoc hevy mcp
sylphlab pdf reader mcp
An MCP server built with Node.js/TypeScript that allows AI agents to securely read PDF files (local or URL) and extract text, metadata, or page counts. Uses pdf-parse.
aashari mcp server atlassian bitbucket
Node.js/TypeScript MCP server for Atlassian Bitbucket. Enables AI systems (LLMs) to interact with workspaces, repositories, and pull requests via tools (list, get, comment, search). Connects AI directly to version control workflows through the standard MCP interface.
aashari mcp server atlassian confluence
Node.js/TypeScript MCP server for Atlassian Confluence. Provides tools enabling AI systems (LLMs) to list/get spaces & pages (content formatted as Markdown) and search via CQL. Connects AI seamlessly to Confluence knowledge bases using the standard MCP interface.
prisma prisma
Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB
Zzzccs123 mcp sentry
mcp sentry for typescript sdk
zhuzhoulin dify mcp server
zhongmingyuan mcp my mac
zhixiaoqiang desktop image manager mcp
MCP ๆๅกๅจ๏ผ็จไบ็ฎก็ๆก้ขๅพ็ใๆฅ็่ฏฆๆ ใๅ็ผฉใ็งปๅจ็ญ๏ผๅฎๅ จ่ฎฉTraeๅฎ็ฐ๏ผ
zhixiaoqiang antd components mcp
An MCP service for Ant Design components query | ไธไธชๅๅฐ Ant Design ็ปไปถไปฃ็ ็ๆๅนป่ง็ MCP ๆๅก๏ผๅ ๅซ็ณป็ปๆ็คบ่ฏใ็ปไปถๆๆกฃใAPI ๆๆกฃใไปฃ็ ็คบไพๅๆดๆฐๆฅๅฟๆฅ่ฏข
Submit Your MCP Server
Share your MCP server with the community
Submit Now