{"id":"b7093b86-214f-44d4-8029-1aa9622f55a6","slug":"allman","kind":"mcp","name":"allman","summary":"High-performance MCP agent mail server — lock-free message routing, NRT search, Git audit trail. Built in Rust.","owner":"copyleftdev","repoUrl":"https://github.com/copyleftdev/allman","license":"MIT","licenseTier":"permissive","trust":"community","stars":0,"match":null,"fewStars":true,"format":"mcp","createdAt":"2026-01-10T15:51:43.000Z","addedAt":"2026-10-21T05:45:03.280Z","logoUrl":"https://avatars.githubusercontent.com/u/11798?u=cddecd83080f513c0d224c94eab0f712238ccf89&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["databases","search","developer-tools"],"tags":["ai-agents","high-performance","rust","simulation","sqlite","tantivy","vllm","agent"],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-23T03:16:04.588Z","sample":false,"url":"https://conduits.dev/tools/allman","language":"Rust","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# Allman\n\nA high-performance MCP agent mail server built in Rust. Named in honor of [Eric Allman](https://en.wikipedia.org/wiki/Eric_Allman), creator of Sendmail.\n\nAllman acts as the communication backbone for large swarms of autonomous AI agents — concurrent durable message routing, near-real-time search, and a Git-backed profile audit trail, all exposed through the [Model Context Protocol](https://modelcontextprotocol.io/).\n\n## Architecture\n\n```\n[ Agent Swarm ]                      [ vLLM / GPU Inference ]\n       |                                   (Port 8001)\n  MCP JSON-RPC                              |\n       v                                    |\n+----------------------------------------------+\n|              ALLMAN SERVER (Rust)              |\n|                                               |\n|  MCP Controller   (tools/call, tools/list)    |\n|       |                                       |\n|  PostOffice                                   |\n|    ├─ DashMap        recoverable hot projection|\n|    ├─ Fjall          durable message log       |\n|    ├─ Tantivy        NRT full-text search      |\n|    └─ Git Actor      profile audit trail       |\n|                                               |\n|  Persist Worker      batched indexing pipeline  |\n|    crossbeam-channel → Tantivy IndexWriter     |\n+----------------------------------------------+\n              Port 8000\n```\n\n**Hot path**: validation and reads remain in memory. Message writes pass through a dedicated Fjall group-commit actor and are acknowledged only after the configured durability boundary.\n\n**Persistence**: canonical messages and per-recipient delivery pointers are stored atomically. DashMap inboxes and the Tantivy index are rebuildable projections. A 350µs microbatch window amortizes sync cost across concurrent sends.\n\n## MCP Tools\n\nConnect any MCP-compatible client to `http://localhost:8000/mcp`.\n\n| Tool | Description |\n|:---|:---|\n| `create_agent` | Register an agent (project_key, name_hint, program, model) |\n| `send_message` | Send a message (from_agent, to, subject, body, project_id) |\n| `get_inbox` | Retrieve and drain unread messages for an agent |\n| `receive_messages` | Lease unread messages with a visibility timeout |\n| `ack_messages` | Durably acknowledge a leased batch |\n| `search_messages` | Full-text search across all indexed messages |\n\n## Getting Started\n\n### Prerequisites\n\n- **Rust** 1.90+\n- **Docker** (optional — for containerized deployment and vLLM)\n- **NVIDIA GPU** + `nvidia-container-toolkit` (optional — only for LLM inference)\n\n### Build from Source\n\n```bash\ngit clone https://github.com/copyleftdev/allman.git\ncd allman\ncargo build --release\n```\n\n### Run\n\n```bash\n# Start the server (binds to 0.0.0.0:8000)\ncargo run --release\n```\n\nConfiguration via environment variables (or `.env`):\n\n| Variable | Default | Description |\n|:---|:---|:---|\n| `INDEX_PATH` | `allman_index` | Tantivy index directory |\n| `REPO_ROOT` | `allman_repo` | Git audit trail directory |\n| `STORE_PATH` | `allman_store` | Fjall durable message store directory |\n| `DURABILITY_MODE` | `strict` | `strict`, `balanced`, or `buffered` |\n| `SERVER_ADDR` | `0.0.0.0:8000` | HTTP listen address |\n| `RUST_LOG` | `allman=debug` | Log level filter |\n\n`strict` uses `fsync`, `balanced` uses `fdatasync`, and `buffered` protects against process crashes but not OS or power loss. Production deployments should use `strict` unless their filesystem guarantees make `balanced` appropriate.\n\n### Docker\n\n```bash\n# Allman server only\ndocker compose up allman -d\n\n# Allman + vLLM GPU inference\nsudo ./setup_gpu.sh   # one-time NVIDIA toolkit install\ndocker compose up -d\n```\n\n## Simulations\n\nIncluded binaries demonstrate swarm behavior with LLM-driven agents:\n\n| Binary | Description |\n|:---|:---|\n| `cyber_sim` | 30-agent cybersecurity incident response (Blue Team, Forensics, CISO) |\n| `black_friday` | Retail chaos simulation with personality-driven personas |\n| `escrow_sim` | Real estate closing day with buyer, seller, and escrow officer |\n| `swarm_stress` | High-concurrency stress test for throughput benchmarking |\n| `benchmark` | Targeted latency and throughput measurements |\n\n```bash\ncargo run --release --bin cyber_sim\ncargo run --release --bin swarm_stress\n```\n\n> **Note**: Simulations that use LLM inference require a running vLLM instance on port 8001. The stress test and benchmark run against Allman alone.\n\n## Project Structure\n\n```\nsrc/\n├── main.rs           Axum server, routing, MCP endpoint\n├── controllers.rs    MCP tool dispatch (create_agent, send_message, etc.)\n├── durable.rs        Fjall group-commit actor, recovery, leases, acknowledgements\n├── state.rs          PostOffice: DashMap state, Tantivy index, persist pipeline\n├── models.rs         Data types (InboxEntry, Agent, Message)\n├── git_actor.rs      Dedicated OS thread for Git audit commits\n└── bin/\n    ├── benchmark.rs\n    ├── black_friday.rs\n    ├── cyber_sim.rs\n    ├── escrow_sim.rs\n    ├── simulation.rs\n    └── swarm_stress.rs\n```\n\n## Contributing\n\n```bash\ncargo fmt\ncargo check   # must pass clean\ncargo test\n```\n\n## License\n\nMIT\n"}