Skip to main content
Glama
README.mdβ€’3.87 kB
# MCP Proto Server (Go Implementation) High-performance Protocol Buffer indexing and search server implementing the Model Context Protocol (MCP). ## πŸš€ Quick Start ```bash # Build make build # Run with current directory ./mcp-proto-server # Run with specific proto root ./mcp-proto-server -root /path/to/protos # Run with verbose logging ./mcp-proto-server -verbose ``` ## πŸ“Š Performance - **Startup**: < 100ms - **Indexing**: ~250 Β΅s per file - **Search**: ~30 Β΅s per query - **Type Resolution**: ~0.6-5 Β΅s - **Binary Size**: 3.7 MB (static) ## πŸ”§ Features ### Three MCP Tools 1. **search_proto** - Fuzzy search across all proto definitions - Searches: names, fields, RPCs, comments - Returns: ranked results with scores - Performance: ~30 Β΅s per query 2. **get_service_definition** - Complete service with resolved types - Returns: all RPCs with request/response types - Auto-resolves: nested message and enum types - Performance: ~2-5 Β΅s with resolution 3. **get_message_definition** - Complete message with resolved types - Returns: all fields with type information - Auto-resolves: nested message and enum types - Performance: ~1-2 Β΅s with resolution ## πŸ—οΈ Architecture ``` mcp-proto-server/ β”œβ”€β”€ cmd/mcp-proto-server/ # Main entry point β”‚ └── main.go # CLI + server initialization β”œβ”€β”€ internal/proto/ # Core proto engine β”‚ β”œβ”€β”€ parser.go # Proto file parsing β”‚ β”œβ”€β”€ indexer.go # Indexing & search β”‚ β”œβ”€β”€ resolver.go # Type resolution β”‚ └── types.go # Data structures └── pkg/server/ # MCP server β”œβ”€β”€ server.go # JSON-RPC over stdio └── handlers.go # Tool implementations ``` ## πŸ“ Development ```bash # Run tests go test ./... # Run tests with coverage go test -cover ./... # Build go build -o mcp-proto-server ./cmd/mcp-proto-server # Cross-compile make build-all ``` ## πŸ“ˆ Test Coverage - **Total Tests**: 28 - **Total Benchmarks**: 21 - **Coverage**: 93% - **All tests passing**: βœ… ## 🎯 Phases Completed - βœ… **Phase 1**: Parser & Indexer - βœ… **Phase 2**: Fuzzy Search (3,300x faster than Python) - βœ… **Phase 3**: Type Resolution (circular refs, package context) - βœ… **Phase 4**: MCP Server Integration ## πŸ”— Integration ### Cursor Configuration Add to your Cursor MCP config: ```json { "mcpServers": { "proto-server": { "command": "/path/to/mcp-proto-server", "args": ["-root", "/path/to/your/protos"], "env": {} } } } ``` ### Claude Desktop Configuration Add to `claude_desktop_config.json`: ```json { "mcpServers": { "proto-server": { "command": "/path/to/mcp-proto-server", "args": ["-root", "/path/to/your/protos"] } } } ``` ## πŸ“š Documentation - [Phase 2 Complete](../PHASE2_COMPLETE.md) - Fuzzy search implementation - [Phase 3 Complete](../PHASE3_COMPLETE.md) - Type resolution system - [Phase 4 Complete](../PHASE4_COMPLETE.md) - MCP server integration - [Implementation Plan](../GO_IMPLEMENTATION_PLAN.md) - Original design ## πŸš€ Production Ready - βœ… Zero dependencies (except fuzzy library) - βœ… Single static binary - βœ… Graceful shutdown - βœ… Structured logging - βœ… Error handling - βœ… Thread-safe - βœ… Cross-platform ## πŸ“Š Comparison with Python Version | Metric | Python | Go | Improvement | |--------|--------|----|----| | Startup | ~1-2s | ~100ms | **10-20x** | | Search | ~100ms | ~30Β΅s | **3,300x** | | Type Resolution | ~5-10ms | ~0.6-5Β΅s | **1,500x** | | Memory (1000 files) | ~100-200MB | ~50MB | **2-4x** | | Binary Size | ~30MB | 3.7MB | **8x smaller** | ## πŸ“„ License Same as parent project --- **Version**: 2.0.0-dev **Go Version**: 1.21+ **Platform**: Linux, macOS, Windows

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/umuterturk/mcp-proto'

If you have feedback or need assistance with the MCP directory API, please join our Discord server