lci-mcp-server

Navigate and compare lci's MCP protocol layer, transport, dispatch, and bridge code.

Updated Apr 27, 2026
One-click install
npx skills add https://github.com/standardbeagle/lci-cpp --skill lci-mcp-server-standardbeagle
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: lci-mcp-server
Source: https://github.com/standardbeagle/lci-cpp/tree/main/.agents/skills/lci-mcp-server
Command: npx skills add https://github.com/standardbeagle/lci-cpp --skill lci-mcp-server-standardbeagle

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Working on lci's Model Context Protocol server requires knowing where framing, version negotiation, tool registration, dispatch, and the HTTP /mcp bridge live across many files, plus which invariants and traps (newline-delimited JSON-RPC, readiness gate, unknown-param guard) can silently break clients. ## Core Features & Use Cases - Code Map for the MCP Layer: Pinpoints exact file and line locations for the stdio transport, JSON-RPC dispatch, tools/list schema emit, tools/call worker queue, and the HTTP /mcp bridge. - Invariants and Traps: Documents protocol conformance rules (no batch, three protocol versions, error conventions) and historical bugs such as the Content-Length framing regression. - Probe Recipes and Tests: Provides ready-to-run JSON-RPC probe commands, gtest filters, golden integration specs, and the pytest tool-surface drift gate. - Use Case: When editing a tool schema, use this Skill to learn that you must re-pin tool-surface.json and docs/TOOLS.md and run the pytest gate, since ctest cannot detect the drift. ## Quick Start Ask the AI to locate the MCP dispatch and registration code in lci and explain how to safely add a new tool parameter without breaking the unknown-param guard.

Frequently Asked Questions about lci-mcp-server

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new tool to an MCP server in C++?▼

Register it with add_tool before run() is called, since registration after run throws a logic_error. Declare every parameter in properties or aliases, because the dispatch-level unknown-param guard rejects undeclared keys and the EverySchemaParameterHasAReader test fails otherwise.

How does MCP protocol version negotiation work over stdio?▼

The server supports protocol versions 2024-11-05, 2025-03-26, and 2025-06-18. During initialize it echoes the requested version if supported, otherwise it responds with the newest supported version.

Does the MCP spec support JSON-RPC batch requests?▼

The 2025-06-18 spec removed batching, and this server rejects array frames with error -32600 and a null id. That is conformant for the newest version but a gap for 2024-11-05 clients that still batch.

Why does an MCP stdio client hang on connect?▼

A common cause is wrong framing: this layer uses newline-delimited JSON-RPC, not LSP-style Content-Length headers. A past regression used Content-Length framing and every real client hung while tests stayed green.

What are the limitations of lci's MCP server?▼

It has no index persistence across restarts, no resources or prompts capability, no Streamable HTTP transport, no cancellation, no editing tools, and search caps at 100 results. The /mcp endpoint is a private bridge, not a spec transport.