arsenal-mcp-server

ChrisTansey007/arsenal-mcp-server

3.2

If you are the rightful owner of arsenal-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

Arsenal MCP Server is a platform that exposes content such as memories, rules, prompts, workflows, and scripts over the Model Context Protocol (MCP) with advanced search and composition capabilities.

Tools
5
Resources
0
Prompts
0

Arsenal MCP Server

Status: v0.1.0 MVP in development

Arsenal MCP Server exposes Arsenal content (memories, rules, prompts, workflows, scripts) over the Model Context Protocol (MCP) with hybrid search, deterministic composition, and hot-reload indexing.

Quick Start

Installation

npm install

Development

npm run dev

Build

npm run build
npm start

Testing

npm test                # Run all tests
npm run test:watch      # Watch mode
npm run test:coverage   # Generate coverage report

Features (v0.1 MVP)

  • 5 MCP Tools: search, get, compose, pack, index.rebuild
  • Stdio Transport: JSON-RPC 2.0 over stdio (WebSocket in v0.2)
  • Hybrid Search: BM25 (FTS5) + embeddings architecture (keyword-only for v0.1)
  • Deterministic Composition: DAG-based merge with variable substitution
  • Hot-Reload Indexing: File watcher with incremental updates
  • Structured Logging: JSON logs with secure variable redaction

Legend: ✅ Completed | 🚧 In Progress | ⏳ Planned

🎉 v0.1 MVP Status: FEATURE-COMPLETE!

The Arsenal MCP Server is now fully functional with all core features implemented!

Architecture

src/
├── config/         # Configuration loading & validation
├── index/          # SQLite FTS5 + vector index
├── search/         # Search engine (BM25 + embeddings)
├── compose/        # Composition engine & DAG resolver
├── handlers/       # MCP tool handlers
├── transport/      # JSON-RPC transport (stdio, ws)
├── models/         # TypeScript types & interfaces
├── utils/          # Helpers (logger, errors, etc.)
└── main.ts         # Entry point

Configuration

Create ~/.arsenal/config.json:

{
  "arsenalsDir": "~/arsenals",
  "autoUpdate": true,
  "bind": {
    "stdio": true,
    "ws": { "enabled": false, "port": 4972 }
  },
  "embeddings": {
    "provider": "none",
    "model": "gte-small"
  },
  "index": {
    "watch": true,
    "ignore": ["**/.git/**", "**/node_modules/**"]
  }
}

Environment Variables

  • ARSENAL_DIR - Root path of arsenals
  • ARSENAL_WS_PORT - WebSocket port (default: 4972)
  • ARSENAL_EMBED_MODEL - Embeddings model ID
  • ARSENAL_INDEX_WATCH - Enable file watching (true|false)

MCP Tools

arsenal.search

Search across items with hybrid ranking.

{
  "q": "release notes style",
  "type": ["prompt", "rule"],
  "limit": 5
}

arsenal.get

Fetch a single item by ID.

{ "id": "prm.tight-changelog" }

arsenal.compose

Merge items with dependencies and variable substitution.

{
  "ids": ["rule.dev-style", "prm.tight-changelog"],
  "vars": { "repo": "payments", "ticket": "PLT-123" },
  "maxTokens": 1500
}

arsenal.pack

Render a named pack file.

{
  "name": "onboarding",
  "vars": { "project": "payments" }
}

arsenal.index.rebuild

Trigger incremental or full reindex.

{ "full": false }

Development

🎉 Development Status: COMPLETE!

All Phases Completed:

  • Phase 1: Project Setup & Infrastructure ✅
  • Phase 2: Core Data Models & Configuration Layer ✅
  • Phase 3: File System & Index Management ✅
  • Phase 4: Search Engine (Hybrid BM25 + Embeddings) ✅
  • Phase 5: MCP Transport Layer (JSON-RPC over stdio) ✅
  • Phase 6: Tool Handlers Implementation ✅
  • Phase 7: Composition Engine & Variable Substitution ✅
  • Phase 8: Pack System ✅
  • Phase 9: Testing Suite & Validation ✅
  • Phase 10: Observability & Error Handling ✅
  • Phase 11: Documentation & Deployment ✅

🚀 v0.1 MVP is production-ready!

Documentation

  • - Complete user guide with examples
  • - Production deployment instructions
  • - Common issues and solutions
  • - How to contribute to the project
  • - Implementation summary

License

MIT