agda-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| agda_loadA | Load and type-check an Agda file. Returns goals, errors, and warnings. This must be called before other commands. Call again after edits to refresh. Args: file_path: Absolute path to the .agda file |
| agda_hoverA | Get type/definition info for a symbol at a position. Args: file_path: Absolute path to the .agda file line: Line number (1-based) character: Column number (1-based) |
| agda_definitionB | Go to the definition of a symbol at a position. Args: file_path: Absolute path to the .agda file line: Line number (1-based) character: Column number (1-based) |
| agda_inferA | Infer the type of an expression in the context of a loaded file. Args: file_path: Absolute path to the .agda file (for scope) expr: The expression to type-check (e.g. "add", "suc zero") |
| agda_computeA | Normalize (evaluate) an expression. Args: file_path: Absolute path to the .agda file (for scope) expr: The expression to evaluate (e.g. "add 2 3") |
| agda_case_splitA | Case split on a variable in a goal. Returns the new clauses. Args: file_path: Absolute path to the .agda file goal_id: The goal/hole number (from agda_load output) variable: The variable name to split on |
| agda_goal_infoA | Get the type and context of a specific goal/hole. Args: file_path: Absolute path to the .agda file goal_id: The goal/hole number (from agda_load output) |
| agda_autoB | Try to automatically solve a goal. Args: file_path: Absolute path to the .agda file goal_id: The goal/hole number (from agda_load output) |
| agda_why_in_scopeA | Explain where a name is brought into scope. Args: file_path: Absolute path to the .agda file name: The name to look up (e.g. "ℕ", "suc", "add") |
| agda_giveA | Fill a goal/hole with a complete solution. Agda will check the expression and, if correct, replace the hole in the source file. Call agda_load afterwards to refresh goals. Args: file_path: Absolute path to the .agda file goal_id: The goal/hole number (from agda_load output) expr: The expression to fill the hole with |
| agda_elaborate_giveA | Fill a goal/hole with an elaborated solution. Like agda_give, but returns the fully elaborated (normalized) expression. Call agda_load afterwards to refresh goals. Args: file_path: Absolute path to the .agda file goal_id: The goal/hole number (from agda_load output) expr: The expression to fill the hole with |
| agda_refineA | Refine a goal by filling it with an expression that may create new subgoals. If expr is empty, Agda tries to refine using the goal type. Call agda_load afterwards to refresh goals. Args: file_path: Absolute path to the .agda file goal_id: The goal/hole number (from agda_load output) expr: Expression to refine with (can be empty) |
| agda_introA | Introduce a constructor or lambda abstraction in a goal. Tries to fill the hole with an appropriate constructor or lambda. Call agda_load afterwards to refresh goals. Args: file_path: Absolute path to the .agda file goal_id: The goal/hole number (from agda_load output) |
| agda_refine_or_introA | Refine or introduce in a goal (auto-chooses the best action). Combines refine and intro: tries to refine with the expression if given, otherwise introduces a constructor or lambda. Call agda_load afterwards to refresh goals. Args: file_path: Absolute path to the .agda file goal_id: The goal/hole number (from agda_load output) expr: Expression to refine with (can be empty for intro) |
| agda_goal_typeA | Get the type of a specific goal/hole (without context). Args: file_path: Absolute path to the .agda file goal_id: The goal/hole number (from agda_load output) |
| agda_contextA | Get the context (available bindings) at a specific goal/hole. Args: file_path: Absolute path to the .agda file goal_id: The goal/hole number (from agda_load output) |
| agda_goal_type_context_inferB | Get goal type, context, and the inferred type of an expression. Args: file_path: Absolute path to the .agda file goal_id: The goal/hole number (from agda_load output) expr: Expression whose type to infer in this goal's context |
| agda_goal_type_context_checkB | Get goal type, context, and check an expression against the goal type. Args: file_path: Absolute path to the .agda file goal_id: The goal/hole number (from agda_load output) expr: Expression to check against the goal type |
| agda_infer_in_goalA | Infer the type of an expression in the context of a specific goal. Unlike agda_infer which works at top level, this infers within a goal's local context (with access to locally-bound variables). Args: file_path: Absolute path to the .agda file goal_id: The goal/hole number (from agda_load output) expr: The expression to type-check |
| agda_compute_in_goalA | Normalize (evaluate) an expression in the context of a specific goal. Unlike agda_compute which works at top level, this evaluates within a goal's local context. Args: file_path: Absolute path to the .agda file goal_id: The goal/hole number (from agda_load output) expr: The expression to evaluate |
| agda_helper_functionA | Generate a helper function type signature for a goal. The expression should be a partial application like "h x y" where h is the helper name and x, y are arguments. Agda will generate the type signature for h. If empty, uses whatever is in the goal. Args: file_path: Absolute path to the .agda file goal_id: The goal/hole number (from agda_load output) expr: Partial application (e.g. "helper x y") |
| agda_why_in_scope_goalA | Explain where a name is brought into scope, in the context of a goal. Like agda_why_in_scope but with access to the goal's local scope. Args: file_path: Absolute path to the .agda file goal_id: The goal/hole number (from agda_load output) name: The name to look up |
| agda_module_contents_goalA | List the contents of a module, in the context of a goal. Args: file_path: Absolute path to the .agda file goal_id: The goal/hole number (from agda_load output) module_name: The module or record name to inspect |
| agda_solve_oneA | Solve a single goal if its solution has been determined by unification. Only works if the goal has been fully instantiated (e.g. by constraints). Call agda_load afterwards to refresh goals. Args: file_path: Absolute path to the .agda file goal_id: The goal/hole number (from agda_load output) |
| agda_solve_allA | Solve all goals whose solutions have been determined by unification. Call agda_load afterwards to refresh goals. Args: file_path: Absolute path to the .agda file |
| agda_auto_allA | Try to automatically solve all visible goals. Call agda_load afterwards to refresh goals. Args: file_path: Absolute path to the .agda file |
| agda_constraintsA | Show all current unsolved constraints. Useful for debugging type errors or understanding what Agda is stuck on. Args: file_path: Absolute path to the .agda file |
| agda_metasA | Show all open meta-variables (goals) and their types. Args: file_path: Absolute path to the .agda file |
| agda_search_aboutA | Search for definitions whose type mentions the given names. Useful for finding relevant lemmas, functions, or constructors. Args: file_path: Absolute path to the .agda file query: Space-separated names to search for in types |
| agda_module_contentsB | List the top-level names exported by a module. Args: file_path: Absolute path to the .agda file module_name: The module name to inspect (e.g. "Data.Nat", "Data.List") |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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