{"type":"mcp_server","name":"mcp-golang","description":"mcp-golang is an unofficial Go implementation of the Model Context Protocol, enabling developers to write MCP servers and clients with minimal code. It offers type safety, custom transports, and modular components.","category":"Developer Tools","language":"Go","stars":1222,"forks":53,"owner":"metoro-io","github_url":"https://github.com/metoro-io/mcp-golang","homepage":"https://mcpgolang.com","setup":"## Setup\n\n1.  Install with `go get github.com/metoro-io/mcp-golang`\n2.  For Claude Desktop, create a file in `~/Library/Application Support/Claude/claude_desktop_config.json` with the specified JSON content, replacing `<your path to golang MCP server go executable>` with the correct path.","tools":"## Available Tools\n\n1.  **Type safety** - Define tool arguments as native go structs. \n2.  **Custom transports** - Use built-in transports or write your own.\n3.  **Low boilerplate** - Generates all MCP endpoints except tools, prompts, and resources.\n4.  **Modular** - Split into transport, protocol, and server/client components.\n5.  **Bi-directional** - Full support for both server and client implementations through stdio transport.\n6.  **Tool Calls** - Allows calling tools.\n7.  **Native go structs as arguments** - Supports native Go structs as arguments for tools.\n8.  **Programatically generated tool list endpoint** - Automatically generates a tool list endpoint.\n9.  **Change notifications** - Supports change notifications.\n10. **Pagination** - Supports pagination for tools.\n11. **Prompt Calls** - Allows calling prompts.\n12. **Programatically generated prompt list endpoint** - Automatically generates a prompt list endpoint.\n13. **Change notifications** - Supports change notifications for prompts.\n14. **Pagination** - Supports pagination for prompts.\n15. **Resource Calls** - Allows calling resources.\n16. **Programatically generated resource list endpoint** - Automatically generates a resource list endpoint.\n17. **Change notifications** - Supports change notifications for resources.\n18. **Pagination** - Supports pagination for resources.\n19. **Stdio Transport** - Full support for all features including bidirectional communication.\n20. **HTTP Transport** - Stateless transport for simple request-response scenarios.\n21. **Gin Transport** - HTTP transport with Gin framework integration.\n22. **Call tools** - Client can call tools.\n23. **Call prompts** - Client can call prompts.\n24. **Call resources** - Client can call resources.\n25. **List tools** - Client can list tools.\n26. **List prompts** - Client can list prompts.\n27. **List resources** - Client can list resources.","faq":null,"created_at":"2024-12-07T15:52:56+00:00","updated_at":"2025-03-28T20:17:07+00:00","source_url":"https://model-context-protocol.com/servers/go-model-context-protocol-server-implementation","related_articles":[]}