AIDA MCP server - Developer actions (lint, test, typecheck) for monorepos
Project description
AIDA MCP
aida-mcp is a Model Context Protocol (MCP) server for AI-assisted software development.
AIDA stands for AI Developer Assistant.
It helps your AI client use repository-owned rules and validation workflows, so tool behavior stays aligned with each repository instead of hardcoded client prompts.
What You Get
get_rules: retrieves task-relevant guidance from repository-owned rules.validate: runs repository-defined validation workflows (lint, tests, type checks, codegen, and similar tasks).- GitHub helpers: inspect CI failures and work with PR review comments.
Requirements
- Python
>=3.12,<3.15 - An MCP-compatible client (for example Cursor, Claude Code, or JetBrains AI)
- A target repository where you want to use AIDA
Install from PyPI
Recommended:
uv tool install aida-mcp
Pip fallback:
pip install aida-mcp
Prerelease/dev builds (optional):
uv tool install --prerelease allow aida-mcp
# or pin an exact dev build:
uv tool install "aida-mcp==0.2.0.dev5"
pip install --pre aida-mcp
Basic Usage
Initialize AIDA files in your repository root:
aida-mcp init
Run the MCP server:
aida-mcp
For supported clients, aida-mcp init usually auto-wires project-local MCP config.
In most cases, you only need to reload/restart the client.
Configure in Your Repository (Full Checklist)
To make AIDA fully operational in a repository, you need both MCP wiring and repository-owned policy files.
- Install
aida-mcp(from PyPI). - In your target repository root, run:
aida-mcp init
- Ensure the repository now contains the
.aida/configuration files:.aida/change_domains.yaml.aida/validation_policy.yaml.aida/validation_registry.yaml.aida/rules/(rule files used byget_rules)- optional:
.aida/git_policy.yaml(commit/PR policy)
- Confirm project-local MCP config files exist:
.cursor/mcp.json(Cursor).mcp.json(Claude Code)
- Reload/restart your client so the
aidaMCP tools are discovered. - If MCP config files already existed and were not updated, rerun:
aida-mcp init --force
- If your client does not use project-local MCP config, configure global MCP explicitly:
aida-mcp install-mcp --global --target <cursor|claude|jetbrains|junie>
What each config area does
rules/: task guidance used byget_ruleschange_domains.yaml: maps changed files to logical domainsvalidation_policy.yaml: routes domains/scopes to validation pipelinesvalidation_registry.yaml: defines executable validation commandsgit_policy.yaml(optional): commit/footer and workflow constraints
Quick verification
After setup:
- run
aida-mcp doctorin the repository root - ask your AI client to call
get_rulesfor a concrete coding task - ask it to run
validatefor your current changes
If doctor passes and validate executes repository-specific commands (not just no-op placeholders), AIDA is configured correctly.
Documentation and Support
For advanced configuration, workflow details, and contribution guidance, use your organization's internal AIDA documentation and repository onboarding materials.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aida_mcp-0.3.0.tar.gz.
File metadata
- Download URL: aida_mcp-0.3.0.tar.gz
- Upload date:
- Size: 113.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
85bcf2eae8c058a9678fa84cda77029c282b7fafa7d63612cdd752bdf43e7eae
|
|
| MD5 |
8506d55381258fe6025066b417d8fc9d
|
|
| BLAKE2b-256 |
d4b725f97c35bae6087adf81e4ecc7b803015f5126c35d75c2a3e2ba3522de0e
|
Provenance
The following attestation bundles were made for aida_mcp-0.3.0.tar.gz:
Publisher:
python-release.yaml on gooddata/gdc-aida
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aida_mcp-0.3.0.tar.gz -
Subject digest:
85bcf2eae8c058a9678fa84cda77029c282b7fafa7d63612cdd752bdf43e7eae - Sigstore transparency entry: 995353051
- Sigstore integration time:
-
Permalink:
gooddata/gdc-aida@2ed6a894dc98ffcff3a1291fe994e2553e47f69e -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/gooddata
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-release.yaml@2ed6a894dc98ffcff3a1291fe994e2553e47f69e -
Trigger Event:
push
-
Statement type:
File details
Details for the file aida_mcp-0.3.0-py3-none-any.whl.
File metadata
- Download URL: aida_mcp-0.3.0-py3-none-any.whl
- Upload date:
- Size: 164.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3cbe929b22fc54c7ba91c68ac61312633eef54be6dcd9fbfd830f50a717dcf35
|
|
| MD5 |
01609a0ec3591479e11873110ba7fe0f
|
|
| BLAKE2b-256 |
a98f05e7d2d546a19165b4181ec78128d159949a21b50b098079c14872d6364a
|
Provenance
The following attestation bundles were made for aida_mcp-0.3.0-py3-none-any.whl:
Publisher:
python-release.yaml on gooddata/gdc-aida
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aida_mcp-0.3.0-py3-none-any.whl -
Subject digest:
3cbe929b22fc54c7ba91c68ac61312633eef54be6dcd9fbfd830f50a717dcf35 - Sigstore transparency entry: 995353111
- Sigstore integration time:
-
Permalink:
gooddata/gdc-aida@2ed6a894dc98ffcff3a1291fe994e2553e47f69e -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/gooddata
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-release.yaml@2ed6a894dc98ffcff3a1291fe994e2553e47f69e -
Trigger Event:
push
-
Statement type: