Description
Problem Statement:
We need to enable the Claude Code CLI to introspect the IOTA SDK using a Modal Context Protocol (MCP) server. This will provide structured access to documentation, signatures, and source code blocks through tool calls, leveraging a Retrieval-Augmented Generation (RAG) pipeline backed by an indexed knowledge base.
Proposed Solution:
Build an MCP server using mark3labs/mcp-go as the server framework. The server will support tool endpoints callable via Claude's modal tool API. The backend will index and retrieve content from the IOTA SDK codebase.
Note: Initial development has started under the
mcp
branch.
Supported Tools:
get_doc("github.com/iota-uz/iota-sdk/pkg/repo.Insert")
// → Returns docstring or summary from the knowledge base
get_signature("github.com/iota-uz/iota-sdk/pkg/repo.Insert")
// → Returns function/method signature
get_source("github.com/iota-uz/iota-sdk/pkg/repo.Insert")
// → Returns full source block from the SDK
seatch_similar("Go code block")
// → Returns similar code blocks from RAG
Architecture Overview:
-
Knowledge Indexer:
Indexes IOTA SDK codebase and extracts docstrings, function signatures, and file structure. -
RAG Retriever:
Handles semantic lookups and matches query strings to indexed symbols. -
MCP Server:
Implements the protocol and serves tools using[mcp-go](https://github.com/mark3labs/mcp-go)
.
Transport Protocol (Pending Decision):
- Still undecided between:
stdio
: Ideal for CLI-native integration.SSE
: Suitable for networked environments and streamable responses.
Acceptance Criteria:
- MCP server built using
mark3labs/mcp-go
- Supports
get_doc
,get_signature
, andget_source
tools - Indexed knowledge base from
iota-sdk
is integrated - Transport protocol (stdio vs SSE) is finalized
- Tested with Claude Code CLI for real-time symbol queries
- MVP merged from
mcp
branch
Additional Context:
- MCP server framework: [mark3labs/mcp-go](https://github.com/mark3labs/mcp-go)
- Work-in-progress branch:
mcp
- Modal tool integration target: Claude Code CLI
Metadata
Metadata
Assignees
Type
Projects
Status