agda-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@agda-mcpload and type-check src/Main.agda"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
agda-mcp
MCP server for Agda, providing type checking, go-to-definition, case splitting, auto proof search, and more — directly from Claude Code or any MCP client.
Talks to agda --interaction-json (the same interface powering agda-mode in Emacs/VS Code), so it has access to all of Agda's interactive features without needing agda-language-server.
Installation
Prerequisites
1. Clone and build
git clone https://github.com/DreamLinuxer/agda-mcp.git
cd agda-mcp
uv sync2. Add to your MCP client
Claude Code (globally, for all projects):
claude mcp add --scope user agda-lsp -- uv run --directory /path/to/agda-mcp agda-mcpOther MCP clients — add to your client's MCP config:
{
"mcpServers": {
"agda-lsp": {
"command": "uv",
"args": ["run", "--directory", "/path/to/agda-mcp", "agda-mcp"],
"type": "stdio"
}
}
}Replace /path/to/agda-mcp with the absolute path where you cloned the repo.
Related MCP server: openai-agents-mcp
Tools
File & navigation
Tool | Description |
| Load/type-check a file, get goals + errors + warnings |
| Symbol kind + definition site at a position |
| Go to definition (file:line:col) |
Goal manipulation (modify source)
Tool | Description |
| Fill a hole with a complete solution |
| Fill a hole with an elaborated solution |
| Refine a goal (may create new subgoals) |
| Introduce a constructor or lambda |
| Auto-choose between refine and intro |
| Case split on a variable in a goal |
| Try to automatically solve a goal |
| Solve a goal if determined by unification |
Goal inspection
Tool | Description |
| Get the type and context of a goal |
| Get just the type of a goal |
| Get the context (bindings) at a goal |
| Goal type + context + inferred type of expr |
| Goal type + context + check expr against type |
| Infer type of an expression at a goal |
| Normalize an expression at a goal |
| Generate helper function type for a goal |
| Explain where a name comes from (at a goal) |
| List module contents (at a goal) |
Toplevel commands
Tool | Description |
| Infer the type of an expression |
| Normalize/evaluate an expression |
| Explain where a name comes from |
| Show all unsolved constraints |
| Show all open goals/meta-variables |
| Search for definitions mentioning given names |
| List names exported by a module |
| Solve all goals determined by unification |
| Try to automatically solve all goals |
Usage examples
Load and type-check a file
agda_load("/path/to/file.agda")
→ Checked. No errors, warnings, or goals.Infer a type
agda_infer("/path/to/file.agda", "map")
→ {a b : Set} {n : ℕ} → (a → b) → Vec a n → Vec b nEvaluate an expression
agda_compute("/path/to/file.agda", "2 + 3")
→ 5Case split
agda_case_split("/path/to/file.agda", 0, "xs")
→ f [] = ?
f (x ∷ xs) = ?Auto-solve a goal
agda_auto("/path/to/file.agda", 0)
→ a , bHow it works
The server spawns a single persistent agda --interaction-json process and communicates via the IOTCM protocol over stdio. File state (highlighting data for go-to-definition, goal types, diagnostics) is cached per file and refreshed on each agda_load call.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/DreamLinuxer/agda-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server