| Age | Commit message (Collapse) | Author |
|
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Adds optional syncing of MCP prompts to Markdown slash command files
for AI agents that don't yet support MCP prompts (e.g., Cursor IDE).
Features:
- Syncs prompts on create/update/delete operations
- Configurable via TOML config, environment vars, or CLI flags
- Backfill support with --sync-all flag
- Thread-safe atomic file writes
- Non-fatal sync failures (logged but don't break operations)
- Comprehensive test coverage (81.1% total)
Configuration:
- Config: [mcp] slashcommand_sync = true, slashcommand_dir = "~/.cursor/commands"
- Env: HEXAI_MCP_SLASHCOMMAND_SYNC, HEXAI_MCP_SLASHCOMMAND_DIR
- CLI: --slashcommand-sync, --slashcommand-dir, --sync-all
Fixes config merging bug where project config would reset global MCP settings.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
|
Implements tools/list and tools/call endpoints to expose prompt management
operations (create, update, delete) as callable MCP tools. This enables Claude
to use the meta-prompts (save_prompt, update_prompt) to actually create and
modify prompts.
Key changes:
- Add Tool type definitions (Tool, ListToolsRequest, CallToolRequest, etc.)
- Implement handleToolsList() returning 3 tools with JSON Schemas
- Implement handleToolsCall() with tool wrappers for create/update/delete
- Add 17 comprehensive unit tests (82.8% coverage maintained)
- Update meta-prompts to reference tools instead of JSON-RPC methods
- Enable listChanged notifications for immediate prompt availability
- Refactor large functions into helpers to stay under 50-line limit
Tools advertised alongside Prompts capability. All functions under 50 lines.
Backward compatible - existing prompts/* JSON-RPC methods unchanged.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
|
Two issues prevented Claude Code CLI from discovering MCP prompts:
1. Protocol version mismatch: Server always returned "2025-06-18" but
Claude Code sends "2025-11-25". Per MCP spec, server must echo
back the client's version if supported. Now supports all known
versions (2024-11-05 through 2025-11-25).
2. Null prompts array: Go nil slices marshal as JSON null, but Claude
Code expects an empty array []. Initialize prompts slice with make()
to ensure [] in JSON output.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
The MCP stdio protocol uses newline-delimited JSON (JSONL), not LSP-style
Content-Length headers. This was discovered during integration testing with
Claude Code CLI which could not connect to the server.
Also updates docs/mcp-setup.md with correct Claude Code CLI configuration
(use `claude mcp add` instead of editing JSON files) and adds integration
test runbook for testing against real Claude Code CLI instances.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Implements a full Model Context Protocol (MCP) server for managing and serving prompts
to LLM applications. The server provides CRUD operations for prompts with automatic
backups and template rendering support.
Key additions:
- cmd/hexai-mcp-server: Main MCP server binary entrypoint
- internal/hexaimcp: Server orchestrator with configuration and setup
- internal/mcp: Core MCP protocol implementation (JSON-RPC 2.0)
- internal/promptstore: Prompt storage with JSONL backend and automatic backups
- Comprehensive test suites achieving 80%+ coverage for all MCP packages
- Magefile targets for building and installing the MCP server
- Complete documentation for setup, API, prompts, and backups
Test coverage:
- internal/hexaimcp: 84.3%
- internal/mcp: 80.3%
- internal/promptstore: 81.2%
- Overall project: 81.5%
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|