mcp-servers
Pre-built MCP tool servers for Aether agents. Each server runs in-process and is gated behind a feature flag so you only compile what you need.
| Feature | Server | What it provides |
|---|---|---|
coding |
CodingMcp |
File read/write/edit, bash, grep, find, LSP integration, web fetch/search |
skills |
SkillsMcp |
Slash commands and reusable skill prompts |
tasks |
TasksMcp |
Hierarchical task management with dependencies |
subagents |
SubAgentsMcp |
Spawn and orchestrate sub-agents |
survey |
SurveyMcp |
Human-in-the-loop elicitation (ask the user questions) |
plan |
PlanMcp |
Submit markdown plans for approval via native elicitation |
Table of Contents
Documentation
Full API documentation is available on docs.rs.
Key entry points:
- [
CodingMcp] -- file I/O, shell, search, and LSP tools CodingTools-- trait for custom tool backendsLspMcp-- standalone LSP code intelligence serverLspRegistry-- manages LSP daemon connectionsTasksMcp-- hierarchical task managementSkillsMcp-- skill prompts and slash commandsSubAgentsMcp-- sub-agent orchestrationSurveyMcp-- structured user input collectionPlanMcp-- plan review and approval workflow- [
McpBuilderExt] -- register all servers in one call
Using with Aether (mcp.json)
These servers use Aether's in-memory transport type -- they run inside your agent process, not as separate subprocesses. Wire them up in mcp.json:
Each server key must match a factory registered with McpBuilder::register_in_memory_server(). The args array is parsed as CLI flags by each server:
| Server | Flag | Default | Description |
|---|---|---|---|
coding |
--root-dir <path> |
cwd | Workspace root for LSP and file operations |
coding |
--rules-dir <path> (repeatable) |
none | Explicit prompt directories for automatic read-triggered rules |
coding |
--disable-lsp |
enabled | Disable LSP-backed tools and aether-lspd daemon connections |
skills |
--dir <path> (repeatable) + --notes-dir <path> |
required | Prompt directories to scan and directory for persisted notes |
tasks |
--dir <path> |
. |
Base directory for task storage (creates .aether-tasks/ inside) |
subagents |
--project-root <path> (alias: --dir) |
. |
Project root containing optional .aether/settings.json authored agents |
To register factories and load the config:
use mcp;
use FutureExt;
use ;
let builder = mcp
.register_in_memory_server
.register_in_memory_server
.register_in_memory_server
.register_in_memory_server
.register_in_memory_server;
// Load mcp.json -- matches server keys to registered factories
let builder = builder.from_json_files.await?;
Programmatic Usage
Add to your Cargo.toml:
# Everything
= { = "../mcp-servers" }
# Just coding tools
= { = "../mcp-servers", = false, = ["coding"] }
Create and start servers directly:
use ;
use ServiceExt;
// Create a coding server
let server = new
.with_root_dir
.into_dyn;
// Or with LSP support
use ;
let lsp_tools = new;
let server = with_tools.into_dyn;
Server Documentation
Feature Flags
default-- coding, skills, tasks, subagents, and plan serverscoding-- file ops, bash, LSP, web toolsskills-- slash commands and promptstasks-- task tracking (no dependency oncoding)subagents-- sub-agent spawning (impliescoding,skills,tasks,survey,plan)survey-- structured human elicitation toolingplan-- markdown plan submission and approval workflowall-- explicit alias enabling all built-in servers