AIDA MCP server - Developer actions (lint, test, typecheck) for monorepos
Project description
AIDA MCP
aida-mcp is the MCP server and CLI package for AIDA (AI Developer Assistant).
It provides repository-owned guidance retrieval and validation orchestration for AI-assisted software development.
Use this package when you want assistant behavior controlled by repository policy instead of tool-specific prompt configuration.
What You Get
get_rules: hybrid retrieval over repository-owned rules, with dependency-aware composition.validate: repository-defined validation routing across lint, tests, type checks, codegen, and related tasks.- GitHub helpers: inspect CI failures and review-comment workflows.
- CLI commands for setup, MCP wiring, diagnostics, and policy-aware commit workflow.
- Unified rule-selection controls (shared + local) for embedded and repo-owned rules.
Design Principles
- Client-agnostic: works with MCP-compatible assistants.
- Repository-owned policy: behavior is version-controlled in
.aida/. - Extensible by default: add domains, pipelines, commands, and rules without forking client prompts.
- Workflow-oriented: supports more than code generation (including validation and Git/GitHub operations).
Roadmap: Adaptive Quality Loops
Auto-tuning for rule behavior is partially available and is planned to expand. The target model is eval-driven improvement of retrieval/routing quality while preserving repository-owned controls.
Planned direction includes:
- plugging in eval frameworks to score assistant outcomes (for example DSPy-style mechanisms)
- connecting observability traces and feedback signals into tuning workflows
- supporting production-grade telemetry backends (for example Langfuse) as optional integrations
In all cases, observability and tuning are intended to inform policy, not bypass it.
Requirements
- Python
>=3.12,<3.15 - An MCP-compatible client (for example Cursor, Claude Code, OpenAI Codex, 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 clients that support project-local config, aida-mcp init auto-wires MCP config and
merges into existing mcp.json files without removing other MCP servers.
In most cases, you only need to reload/restart the client.
init also writes minimal project guidance files:
.cursor/rules/aida.mdc.claude/CLAUDE.mdAGENTS.md.aiassistant/rules/aida.md.junie/guidelines.md
init also writes rule selection defaults:
.aida/rules_selection.yaml(tracked).aida/.gitignorecontainingrules_selection.local.yaml
Typical Flow
- Run
aida-mcp initin a target repository. - Let assistants call
get_rulesat task start and on major workflow pivots. - Call
get_rulesagain before commit/push workflow with query likeHow to commit/push. - Let assistants run
validatebefore commit/push. - Evolve
.aida/rules/**and.aida/*.yamlas team policy changes. - Use Git/GitHub helpers to support delivery workflows and less technical users.
- Optionally add eval/observability loops to improve guidance quality over time.
Rule Selection and Embedded Profiles
Embedded rules are now organized into:
core/**: safe defaults enabled by defaultprofiles/**: optional overlays (languages/build/framework/workflow)
Selection is repository-owned and layered:
- Shared
.aida/rules_selection.yaml - Optional local
.aida/rules_selection.local.yaml(gitignored; user opt-out)
Default semantics:
defaults.embedded: core_onlydefaults.repo: all
This keeps local authoring intuitive: new files under .aida/rules/** are active without extra allowlisting.
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_selection.yaml(shared rule-selection defaults).aida/.gitignore(containsrules_selection.local.yamlfor local overrides).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).codex/config.toml(OpenAI Codex)AGENTS.md(shared project workflow instructions).aiassistant/rules/aida.md(IntelliJ AI Assistant / AI Chat rule file).junie/guidelines.md(Junie guideline file)- JetBrains AI Chat / Junie currently ignore repository-local
mcp.jsonand use global files instead.
- Reload/restart your client so the
aidaMCP tools are discovered. - To (re)apply project-local MCP config explicitly:
aida-mcp install-mcp --target cursor
aida-mcp install-mcp --target claude
aida-mcp install-mcp --target codex
init and project-local install-mcp both merge with existing mcpServers
entries and preserve non-AIDA servers.
- If your client does not use project-local MCP config, configure global MCP explicitly:
aida-mcp install-mcp --global --target <cursor|claude|codex|jetbrains|junie>
JetBrains AI Chat writes to ~/.ai/mcp/mcp.json.
Junie writes to ~/.junie/mcp/mcp.json.
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.
Optional pre-commit guidance
To include commit workflow hints in validate(scope="pre_commit"), enable this in .aida/git_policy.yaml:
git_policy:
commit:
pre_commit_guidance: true
When enabled, validate(pre_commit) includes commit_guidance that points assistants to aida-mcp commit with repo policy expectations.
Opt-out
To opt out for a specific client:
- Disable/remove that client's AIDA MCP wiring.
- Remove the client bootstrap instruction file for that client scope.
Repository CI/rulesets still remain your shared safety net.
Documentation and Support
For implementation and repository-level docs, see:
- repository overview:
../../README.md - configuration guide:
../../docs/aida/configuring-a-repository.md - CLI usage guide:
../../docs/aida/cli-usage.md - contributor guide:
../../docs/aida/contributor-guide.md
Onboarding Finalization (Client-Agnostic)
After running deterministic setup commands (aida-mcp init, optional
aida-mcp migrate, and aida-mcp doctor), ask your AI client to call
get_rules with an onboarding-focused query (for example:
"finalize onboarding after aida-mcp migrate").
get_rules can return an embedded onboarding-finalization rule that tells the AI how to:
- refactor/populate
.aida/rules/** - fill
.aida/*.yamlwith conservative defaults - tune
.aida/rules_selection.yamlwith detected embedded profiles - preserve user-local opt-out through
.aida/.gitignore+rules_selection.local.yaml - ask focused follow-up questions when details are missing
- run
validate(...)before considering onboarding complete
If onboarding is incomplete (for example .aida/rules/ is missing or empty),
normal get_rules calls return an onboarding_incomplete error and instruct
the AI to request onboarding guidance first.
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.4.0.tar.gz.
File metadata
- Download URL: aida_mcp-0.4.0.tar.gz
- Upload date:
- Size: 112.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cacebb4b9716734756f4d9dfad9dd53fea49920afdf2adcd94dd0ec6278786c3
|
|
| MD5 |
da64f7193589a9ca7d66a518ac680947
|
|
| BLAKE2b-256 |
3964417872f830c21336499a98a42df92113ede38a4e302d7c3b97a5271fe8df
|
Provenance
The following attestation bundles were made for aida_mcp-0.4.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.4.0.tar.gz -
Subject digest:
cacebb4b9716734756f4d9dfad9dd53fea49920afdf2adcd94dd0ec6278786c3 - Sigstore transparency entry: 1042759233
- Sigstore integration time:
-
Permalink:
gooddata/gdc-aida@1f56905bdd67a1bfe164a9d9db59e049306418c1 -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/gooddata
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-release.yaml@1f56905bdd67a1bfe164a9d9db59e049306418c1 -
Trigger Event:
push
-
Statement type:
File details
Details for the file aida_mcp-0.4.0-py3-none-any.whl.
File metadata
- Download URL: aida_mcp-0.4.0-py3-none-any.whl
- Upload date:
- Size: 174.8 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 |
afb5ba6cd63223c8ea2d8c3f2d49f701867bfb1c17d8a25b20d4e872c2ccc19f
|
|
| MD5 |
44801f5388c431d0d1d7e22354841627
|
|
| BLAKE2b-256 |
1fdf538fd9af956c541c9c3a1a67fdfcfe1f8c9c2dcf12257dfc45410df27273
|
Provenance
The following attestation bundles were made for aida_mcp-0.4.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.4.0-py3-none-any.whl -
Subject digest:
afb5ba6cd63223c8ea2d8c3f2d49f701867bfb1c17d8a25b20d4e872c2ccc19f - Sigstore transparency entry: 1042759240
- Sigstore integration time:
-
Permalink:
gooddata/gdc-aida@1f56905bdd67a1bfe164a9d9db59e049306418c1 -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/gooddata
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-release.yaml@1f56905bdd67a1bfe164a9d9db59e049306418c1 -
Trigger Event:
push
-
Statement type: