[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-metoro-io--mcp-golang":3,"tool-metoro-io--mcp-golang":61},[4,18,26,36,44,52],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",141543,2,"2026-04-06T11:32:54",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":53,"name":54,"github_repo":55,"description_zh":56,"stars":57,"difficulty_score":10,"last_commit_at":58,"category_tags":59,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,60],"视频",{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":77,"owner_twitter":76,"owner_website":78,"owner_url":79,"languages":80,"stars":85,"forks":86,"last_commit_at":87,"license":88,"difficulty_score":89,"env_os":90,"env_gpu":91,"env_ram":91,"env_deps":92,"category_tags":99,"github_topics":76,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":100,"updated_at":101,"faqs":102,"releases":138},4416,"metoro-io\u002Fmcp-golang","mcp-golang","Write Model Context Protocol servers in few lines of go code. Docs at https:\u002F\u002Fmcpgolang.com . Created by https:\u002F\u002Fmetoro.io","mcp-golang 是一个专为 Go 语言开发者设计的开源库，旨在帮助用户仅用几行代码即可快速构建符合模型上下文协议（Model Context Protocol, MCP）的服务器与客户端。它解决了在 Go 生态中开发 MCP 应用时往往需要编写大量重复样板代码、手动处理数据序列化及错误逻辑等痛点，让开发者能专注于核心业务逻辑的实现。\n\n该工具特别适合熟悉 Go 语言的后端工程师、系统架构师以及希望将现有 Go 服务快速接入大模型生态的研究人员使用。其核心技术亮点在于强大的类型安全机制：用户只需定义原生的 Go 结构体并添加标签，mcp-golang 便能自动生成标准的 JSON Schema，并自动完成参数反序列化与错误处理，极大降低了出错概率。此外，它支持高度模块化设计，内置了标准输入输出（stdio）和 HTTP 等多种传输方式，同时也允许用户自定义传输层。无论是构建复杂的交互式工具、动态提示词（Prompts），还是管理外部资源，mcp-golang 都能通过简洁的 API 轻松搞定，是 Go 开发者进入 MCP 领域的高效利器。","\u003Cdiv align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmetoro-io_mcp-golang_readme_e92914379261.webp\" height=\"300\" alt=\"Statusphere logo\">\n\u003C\u002Fdiv>\n\u003Cbr\u002F>\n\u003Cdiv align=\"center\">\n\n![GitHub stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fmetoro-io\u002Fmcp-golang?style=social)\n![GitHub forks](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fforks\u002Fmetoro-io\u002Fmcp-golang?style=social)\n![GitHub issues](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Fmetoro-io\u002Fmcp-golang)\n![GitHub pull requests](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues-pr\u002Fmetoro-io\u002Fmcp-golang)\n![GitHub license](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fmetoro-io\u002Fmcp-golang)\n![GitHub contributors](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Fmetoro-io\u002Fmcp-golang)\n![GitHub last commit](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flast-commit\u002Fmetoro-io\u002Fmcp-golang)\n[![GoDoc](https:\u002F\u002Fpkg.go.dev\u002Fbadge\u002Fgithub.com\u002Fmetoro-io\u002Fmcp-golang.svg)](https:\u002F\u002Fpkg.go.dev\u002Fgithub.com\u002Fmetoro-io\u002Fmcp-golang)\n[![Go Report Card](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmetoro-io_mcp-golang_readme_2b4a70945b89.png)](https:\u002F\u002Fgoreportcard.com\u002Freport\u002Fgithub.com\u002Fmetoro-io\u002Fmcp-golang)\n![Tests](https:\u002F\u002Fgithub.com\u002Fmetoro-io\u002Fmcp-golang\u002Factions\u002Fworkflows\u002Fgo-test.yml\u002Fbadge.svg)\n\n\n\n\n\u003C\u002Fdiv>\n\n# mcp-golang \n\nmcp-golang is an unofficial implementation of the [Model Context Protocol](https:\u002F\u002Fmodelcontextprotocol.io\u002F) in Go.\n\nWrite MCP servers and clients in golang with a few lines of code.\n\nDocs at [https:\u002F\u002Fmcpgolang.com](https:\u002F\u002Fmcpgolang.com)\n\n## Highlights\n- 🛡️**Type safety** - Define your tool arguments as native go structs, have mcp-golang handle the rest. Automatic schema generation, deserialization, error handling etc.\n- 🚛 **Custom transports** - Use the built-in transports (stdio for full feature support, HTTP for stateless communication) or write your own.\n- ⚡ **Low boilerplate** - mcp-golang generates all the MCP endpoints for you apart from your tools, prompts and resources.\n- 🧩 **Modular** - The library is split into three components: transport, protocol and server\u002Fclient. Use them all or take what you need.\n- 🔄 **Bi-directional** - Full support for both server and client implementations through stdio transport.\n\n## Example Usage\n\nInstall with `go get github.com\u002Fmetoro-io\u002Fmcp-golang`\n\n### Server Example\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"github.com\u002Fmetoro-io\u002Fmcp-golang\"\n\t\"github.com\u002Fmetoro-io\u002Fmcp-golang\u002Ftransport\u002Fstdio\"\n)\n\n\u002F\u002F Tool arguments are just structs, annotated with jsonschema tags\n\u002F\u002F More at https:\u002F\u002Fmcpgolang.com\u002Ftools#schema-generation\ntype Content struct {\n\tTitle       string  `json:\"title\" jsonschema:\"required,description=The title to submit\"`\n\tDescription *string `json:\"description\" jsonschema:\"description=The description to submit\"`\n}\ntype MyFunctionsArguments struct {\n\tSubmitter string  `json:\"submitter\" jsonschema:\"required,description=The name of the thing calling this tool (openai, google, claude, etc)\"`\n\tContent   Content `json:\"content\" jsonschema:\"required,description=The content of the message\"`\n}\n\nfunc main() {\n\tdone := make(chan struct{})\n\n\tserver := mcp_golang.NewServer(stdio.NewStdioServerTransport())\n\terr := server.RegisterTool(\"hello\", \"Say hello to a person\", func(arguments MyFunctionsArguments) (*mcp_golang.ToolResponse, error) {\n\t\treturn mcp_golang.NewToolResponse(mcp_golang.NewTextContent(fmt.Sprintf(\"Hello, %server!\", arguments.Submitter))), nil\n\t})\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\terr = server.RegisterPrompt(\"promt_test\", \"This is a test prompt\", func(arguments Content) (*mcp_golang.PromptResponse, error) {\n\t\treturn mcp_golang.NewPromptResponse(\"description\", mcp_golang.NewPromptMessage(mcp_golang.NewTextContent(fmt.Sprintf(\"Hello, %server!\", arguments.Title)), mcp_golang.RoleUser)), nil\n\t})\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\terr = server.RegisterResource(\"test:\u002F\u002Fresource\", \"resource_test\", \"This is a test resource\", \"application\u002Fjson\", func() (*mcp_golang.ResourceResponse, error) {\n\t\treturn mcp_golang.NewResourceResponse(mcp_golang.NewTextEmbeddedResource(\"test:\u002F\u002Fresource\", \"This is a test resource\", \"application\u002Fjson\")), nil\n\t})\n\n\terr = server.Serve()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t\u003C-done\n}\n```\n\n### HTTP Server Example\n\nYou can also create an HTTP-based server using either the standard HTTP transport or Gin framework:\n\n```go\n\u002F\u002F Standard HTTP\ntransport := http.NewHTTPTransport(\"\u002Fmcp\")\ntransport.WithAddr(\":8080\")\nserver := mcp_golang.NewServer(transport)\n\n\u002F\u002F Or with Gin framework\ntransport := http.NewGinTransport()\nrouter := gin.Default()\nrouter.POST(\"\u002Fmcp\", transport.Handler())\nserver := mcp_golang.NewServer(transport)\n```\n\nNote: HTTP transports are stateless and don't support bidirectional features like notifications. Use stdio transport if you need those features.\n\n### Client Example\n\nCheckout the [examples\u002Fclient](.\u002Fexamples\u002Fclient) directory for a more complete example.\n\n```go\npackage main\n\nimport (\n    \"context\"\n    \"log\"\n    mcp \"github.com\u002Fmetoro-io\u002Fmcp-golang\"\n    \"github.com\u002Fmetoro-io\u002Fmcp-golang\u002Ftransport\u002Fstdio\"\n)\n\n\u002F\u002F Define type-safe arguments\ntype CalculateArgs struct {\n    Operation string `json:\"operation\"`\n    A         int    `json:\"a\"`\n    B         int    `json:\"b\"`\n}\n\nfunc main() {\n   cmd := exec.Command(\"go\", \"run\", \".\u002Fserver\u002Fmain.go\")\n   stdin, err := cmd.StdinPipe()\n   if err != nil {\n    log.Fatalf(\"Failed to get stdin pipe: %v\", err)\n   }\n   stdout, err := cmd.StdoutPipe()\n   if err != nil {\n    log.Fatalf(\"Failed to get stdout pipe: %v\", err)\n   }\n\n   if err := cmd.Start(); err != nil {\n    log.Fatalf(\"Failed to start server: %v\", err)\n   }\n   defer cmd.Process.Kill()\n    \u002F\u002F Create and initialize client\n    transport := stdio.NewStdioServerTransportWithIO(stdout, stdin)\n    client := mcp.NewClient(transport)\n    \n    if _, err := client.Initialize(context.Background()); err != nil {\n        log.Fatalf(\"Failed to initialize: %v\", err)\n    }\n\n    \u002F\u002F Call a tool with typed arguments\n    args := CalculateArgs{\n        Operation: \"add\",\n        A:         10,\n        B:         5,\n    }\n    \n    response, err := client.CallTool(context.Background(), \"calculate\", args)\n    if err != nil {\n        log.Fatalf(\"Failed to call tool: %v\", err)\n    }\n    \n    if response != nil && len(response.Content) > 0 {\n        log.Printf(\"Result: %s\", response.Content[0].TextContent.Text)\n    }\n}\n```\n\n### Using with Claude Desktop\n\nCreate a file in ~\u002FLibrary\u002FApplication Support\u002FClaude\u002Fclaude_desktop_config.json with the following contents:\n\n```json\n{\n\"mcpServers\": {\n  \"golang-mcp-server\": {\n      \"command\": \"\u003Cyour path to golang MCP server go executable>\",\n      \"args\": [],\n      \"env\": {}\n    }\n  }\n}\n``` \n\n## Contributions\n\nContributions are more than welcome! Please check out [our contribution guidelines](.\u002FCONTRIBUTING.md).\n\n## Discord\n\nGot any suggestions, have a question on the api or usage? Ask on the [discord server](https:\u002F\u002Fdiscord.gg\u002F33saRwE3pT). \nA maintainer will be happy to help you out.\n\n## Examples\n\nSome more extensive examples using the library found here:\n\n- \u003Cimg height=\"12\" width=\"12\" src=\"https:\u002F\u002Fmetoro.io\u002Fstatic\u002Fimages\u002Flogos\u002FMetoro.svg\" \u002F> **[Metoro](https:\u002F\u002Fgithub.com\u002Fmetoro-io\u002Fmetoro-mcp-server)** - Query and interact with kubernetes environments monitored by Metoro\n\nOpen a PR to add your own projects!\n\n## Server Feature Implementation\n\n### Tools\n- [x] Tool Calls\n- [x] Native go structs as arguments\n- [x] Programatically generated tool list endpoint\n- [x] Change notifications\n- [x] Pagination\n\n### Prompts\n- [x] Prompt Calls\n- [x] Programatically generated prompt list endpoint\n- [x] Change notifications\n- [x] Pagination\n\n### Resources\n- [x] Resource Calls\n- [x] Programatically generated resource list endpoint\n- [x] Change notifications\n- [x] Pagination\n\n### Transports\n- [x] Stdio - Full support for all features including bidirectional communication\n- [x] HTTP - Stateless transport for simple request-response scenarios (no notifications support)\n- [x] Gin - HTTP transport with Gin framework integration (stateless, no notifications support)\n- [x] SSE\n- [x] Custom transport support\n- [ ] HTTPS with custom auth support - in progress. Not currently part of the spec but we'll be adding experimental support for it.\n\n### Client\n- [x] Call tools\n- [x] Call prompts\n- [x] Call resources\n- [x] List tools\n- [x] List prompts\n- [x] List resources\n\n","\u003Cdiv align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmetoro-io_mcp-golang_readme_e92914379261.webp\" height=\"300\" alt=\"Statusphere logo\">\n\u003C\u002Fdiv>\n\u003Cbr\u002F>\n\u003Cdiv align=\"center\">\n\n![GitHub 星标](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fmetoro-io\u002Fmcp-golang?style=social)\n![GitHub 分支](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fforks\u002Fmetoro-io\u002Fmcp-golang?style=social)\n![GitHub 问题](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Fmetoro-io\u002Fmcp-golang)\n![GitHub 拉取请求](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues-pr\u002Fmetoro-io\u002Fmcp-golang)\n![GitHub 许可证](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fmetoro-io\u002Fmcp-golang)\n![GitHub 贡献者](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Fmetoro-io\u002Fmcp-golang)\n![GitHub 最后提交](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flast-commit\u002Fmetoro-io\u002Fmcp-golang)\n[![GoDoc](https:\u002F\u002Fpkg.go.dev\u002Fbadge\u002Fgithub.com\u002Fmetoro-io\u002Fmcp-golang.svg)](https:\u002F\u002Fpkg.go.dev\u002Fgithub.com\u002Fmetoro-io\u002Fmcp-golang)\n[![Go Report Card](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmetoro-io_mcp-golang_readme_2b4a70945b89.png)](https:\u002F\u002Fgoreportcard.com\u002Freport\u002Fgithub.com\u002Fmetoro-io\u002Fmcp-golang)\n![测试](https:\u002F\u002Fgithub.com\u002Fmetoro-io\u002Fmcp-golang\u002Factions\u002Fworkflows\u002Fgo-test.yml\u002Fbadge.svg)\n\n\n\n\n\u003C\u002Fdiv>\n\n# mcp-golang \n\nmcp-golang 是 [Model Context Protocol](https:\u002F\u002Fmodelcontextprotocol.io\u002F) 的一个非官方 Go 实现。\n\n只需几行代码，即可用 Go 编写 MCP 服务器和客户端。\n\n文档请访问 [https:\u002F\u002Fmcpgolang.com](https:\u002F\u002Fmcpgolang.com)\n\n## 亮点\n- 🛡️**类型安全** - 将工具参数定义为原生 Go 结构体，其余工作由 mcp-golang 自动完成。自动模式生成、反序列化、错误处理等。\n- 🚛 **自定义传输层** - 可使用内置传输层（stdio 提供完整功能支持，HTTP 用于无状态通信）或编写自己的传输层。\n- ⚡ **低样板代码** - mcp-golang 会为您生成所有 MCP 端点，您只需关注工具、提示和资源。\n- 🧩 **模块化** - 该库分为三个组件：传输层、协议层和服务器\u002F客户端层。您可以全部使用，也可以只取所需部分。\n- 🔄 **双向通信** - 通过 stdio 传输层完全支持服务器端和客户端实现。\n\n## 使用示例\n\n通过 `go get github.com\u002Fmetoro-io\u002Fmcp-golang` 安装。\n\n### 服务器示例\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"github.com\u002Fmetoro-io\u002Fmcp-golang\"\n\t\"github.com\u002Fmetoro-io\u002Fmcp-golang\u002Ftransport\u002Fstdio\"\n)\n\n\u002F\u002F 工具参数仅为结构体，并添加 jsonschema 标签\n\u002F\u002F 更多信息请参见 https:\u002F\u002Fmcpgolang.com\u002Ftools#schema-generation\ntype Content struct {\n\tTitle       string  `json:\"title\" jsonschema:\"required,description=要提交的标题\"`\n\tDescription *string `json:\"description\" jsonschema:\"description=要提交的描述\"`\n}\ntype MyFunctionsArguments struct {\n\tSubmitter string  `json:\"submitter\" jsonschema:\"required,description=调用此工具的实体名称（openai、google、claude 等）\"`\n\tContent   Content `json:\"content\" jsonschema:\"required,description=消息内容\"`\n}\n\nfunc main() {\n\tdone := make(chan struct{})\n\n\tserver := mcp_golang.NewServer(stdio.NewStdioServerTransport())\n\terr := server.RegisterTool(\"hello\", \"向某人问好\", func(arguments MyFunctionsArguments) (*mcp_golang.ToolResponse, error) {\n\t\treturn mcp_golang.NewToolResponse(mcp_golang.NewTextContent(fmt.Sprintf(\"你好，%server！\", arguments.Submitter))), nil\n\t})\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\terr = server.RegisterPrompt(\"promt_test\", \"这是一个测试提示\", func(arguments Content) (*mcp_golang.PromptResponse, error) {\n\t\treturn mcp_golang.NewPromptResponse(\"description\", mcp_golang.NewPromptMessage(mcp_golang.NewTextContent(fmt.Sprintf(\"你好，%server！\", arguments.Title)), mcp_golang.RoleUser)), nil\n\t})\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\terr = server.RegisterResource(\"test:\u002F\u002Fresource\", \"resource_test\", \"这是一个测试资源\", \"application\u002Fjson\", func() (*mcp_golang.ResourceResponse, error) {\n\t\treturn mcp_golang.NewResourceResponse(mcp_golang.NewTextEmbeddedResource(\"test:\u002F\u002Fresource\", \"这是一个测试资源\", \"application\u002Fjson\")), nil\n\t})\n\n\terr = server.Serve()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t\u003C-done\n}\n```\n\n### HTTP 服务器示例\n\n您也可以使用标准 HTTP 传输层或 Gin 框架创建基于 HTTP 的服务器：\n\n```go\n\u002F\u002F 标准 HTTP\ntransport := http.NewHTTPTransport(\"\u002Fmcp\")\ntransport.WithAddr(\":8080\")\nserver := mcp_golang.NewServer(transport)\n\n\u002F\u002F 或使用 Gin 框架\ntransport := http.NewGinTransport()\nrouter := gin.Default()\nrouter.POST(\"\u002Fmcp\", transport.Handler())\nserver := mcp_golang.NewServer(transport)\n```\n\n注意：HTTP 传输层是无状态的，不支持通知等双向功能。如需这些功能，请使用 stdio 传输层。\n\n### 客户端示例\n\n更多完整示例请查看 [examples\u002Fclient](.\u002Fexamples\u002Fclient) 目录。\n\n```go\npackage main\n\nimport (\n    \"context\"\n    \"log\"\n    mcp \"github.com\u002Fmetoro-io\u002Fmcp-golang\"\n    \"github.com\u002Fmetoro-io\u002Fmcp-golang\u002Ftransport\u002Fstdio\"\n)\n\n\u002F\u002F 定义类型安全的参数\ntype CalculateArgs struct {\n    Operation string `json:\"operation\"`\n    A         int    `json:\"a\"`\n    B         int    `json:\"b\"`\n}\n\nfunc main() {\n   cmd := exec.Command(\"go\", \"run\", \".\u002Fserver\u002Fmain.go\")\n   stdin, err := cmd.StdinPipe()\n   if err != nil {\n    log.Fatalf(\"无法获取标准输入管道： %v\", err)\n   }\n   stdout, err := cmd.StdoutPipe()\n   if err != nil {\n    log.Fatalf(\"无法获取标准输出管道： %v\", err)\n   }\n\n   if err := cmd.Start(); err != nil {\n    log.Fatalf(\"无法启动服务器： %v\", err)\n   }\n   defer cmd.Process.Kill()\n    \u002F\u002F 创建并初始化客户端\n    transport := stdio.NewStdioServerTransportWithIO(stdout, stdin)\n    client := mcp.NewClient(transport)\n    \n    if _, err := client.Initialize(context.Background()); err != nil {\n        log.Fatalf(\"初始化失败： %v\", err)\n    }\n\n    \u002F\u002F 使用类型化参数调用工具\n    args := CalculateArgs{\n        Operation: \"add\",\n        A:         10,\n        B:         5,\n    }\n    \n    response, err := client.CallTool(context.Background(), \"calculate\", args)\n    if err != nil {\n        log.Fatalf(\"调用工具失败： %v\", err)\n    }\n    \n    if response != nil && len(response.Content) > 0 {\n        log.Printf(\"结果： %s\", response.Content[0].TextContent.Text)\n    }\n}\n```\n\n### 与 Claude Desktop 集成\n\n在 ~\u002FLibrary\u002FApplication Support\u002FClaude\u002Fclaude_desktop_config.json 中创建文件，内容如下：\n\n```json\n{\n\"mcpServers\": {\n  \"golang-mcp-server\": {\n      \"command\": \"\u003C您的 Go MCP 服务器可执行文件路径>\",\n      \"args\": [],\n      \"env\": {}\n    }\n  }\n}\n``` \n\n## 贡献\n\n我们非常欢迎贡献！请查看我们的[贡献指南](.\u002FCONTRIBUTING.md)。\n\n## Discord\n\n有任何建议或关于 API 和使用的问题吗？请在 [Discord 服务器](https:\u002F\u002Fdiscord.gg\u002F33saRwE3pT) 上提问。维护人员将很乐意为您提供帮助。\n\n## 示例\n\n在此处可以找到使用该库的更多详细示例：\n\n- \u003Cimg height=\"12\" width=\"12\" src=\"https:\u002F\u002Fmetoro.io\u002Fstatic\u002Fimages\u002Flogos\u002FMetoro.svg\" \u002F> **[Metoro](https:\u002F\u002Fgithub.com\u002Fmetoro-io\u002Fmetoro-mcp-server)** - 查询并与由 Metoro 监控的 Kubernetes 环境交互\n\n欢迎提交 PR 来添加您自己的项目！\n\n## 服务器功能实现\n\n### 工具\n- [x] 工具调用\n- [x] 将原生 Go 结构体作为参数\n- [x] 自动生成的工具列表端点\n- [x] 变更通知\n- [x] 分页\n\n### 提示词\n- [x] 提示词调用\n- [x] 自动生成的提示词列表端点\n- [x] 变更通知\n- [x] 分页\n\n### 资源\n- [x] 资源调用\n- [x] 自动生成的资源列表端点\n- [x] 变更通知\n- [x] 分页\n\n### 传输协议\n- [x] Stdio - 完全支持所有功能，包括双向通信\n- [x] HTTP - 适用于简单请求-响应场景的无状态传输（不支持通知）\n- [x] Gin - 集成 Gin 框架的 HTTP 传输（无状态，不支持通知）\n- [x] SSE\n- [x] 自定义传输协议支持\n- [ ] HTTPS 并支持自定义认证 - 正在开发中。目前不在规范范围内，但我们将为其添加实验性支持。\n\n### 客户端\n- [x] 调用工具\n- [x] 调用提示词\n- [x] 调用资源\n- [x] 列出工具\n- [x] 列出提示词\n- [x] 列出资源","# mcp-golang 快速上手指南\n\nmcp-golang 是一个用 Go 语言实现的非官方 [Model Context Protocol (MCP)](https:\u002F\u002Fmodelcontextprotocol.io\u002F) 库。它允许开发者通过极少的代码编写 MCP 服务端和客户端，支持类型安全的参数定义、自动 Schema 生成以及多种传输协议。\n\n## 环境准备\n\n在开始之前，请确保你的开发环境满足以下要求：\n\n*   **操作系统**: Linux, macOS 或 Windows\n*   **Go 版本**: 建议安装 Go 1.21 或更高版本\n*   **依赖管理**: 确保已初始化 Go Module (`go mod init`)\n\n无需其他特殊的前置依赖，库会自动处理 JSON Schema 生成和序列化逻辑。\n\n## 安装步骤\n\n使用 `go get` 命令将库添加到你的项目中：\n\n```bash\ngo get github.com\u002Fmetoro-io\u002Fmcp-golang\n```\n\n## 基本使用\n\n### 1. 创建 MCP 服务端 (Server)\n\n以下示例展示如何创建一个基于 `stdio` 传输的简单服务器，注册一个工具（Tool）、一个提示词（Prompt）和一个资源（Resource）。\n\n**特点**：\n*   使用原生 Go struct 定义参数，自动处理验证和文档生成。\n*   极低样板代码，只需关注业务逻辑。\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"github.com\u002Fmetoro-io\u002Fmcp-golang\"\n\t\"github.com\u002Fmetoro-io\u002Fmcp-golang\u002Ftransport\u002Fstdio\"\n)\n\n\u002F\u002F 定义工具参数结构体，使用 jsonschema 标签进行描述\ntype Content struct {\n\tTitle       string  `json:\"title\" jsonschema:\"required,description=The title to submit\"`\n\tDescription *string `json:\"description\" jsonschema:\"description=The description to submit\"`\n}\n\ntype MyFunctionsArguments struct {\n\tSubmitter string  `json:\"submitter\" jsonschema:\"required,description=The name of the thing calling this tool (openai, google, claude, etc)\"`\n\tContent   Content `json:\"content\" jsonschema:\"required,description=The content of the message\"`\n}\n\nfunc main() {\n\tdone := make(chan struct{})\n\n\t\u002F\u002F 初始化服务器，使用 stdio 传输协议\n\tserver := mcp_golang.NewServer(stdio.NewStdioServerTransport())\n\n\t\u002F\u002F 注册工具 (Tool)\n\terr := server.RegisterTool(\"hello\", \"Say hello to a person\", func(arguments MyFunctionsArguments) (*mcp_golang.ToolResponse, error) {\n\t\treturn mcp_golang.NewToolResponse(mcp_golang.NewTextContent(fmt.Sprintf(\"Hello, %s!\", arguments.Submitter))), nil\n\t})\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t\u002F\u002F 注册提示词 (Prompt)\n\terr = server.RegisterPrompt(\"promt_test\", \"This is a test prompt\", func(arguments Content) (*mcp_golang.PromptResponse, error) {\n\t\treturn mcp_golang.NewPromptResponse(\"description\", mcp_golang.NewPromptMessage(mcp_golang.NewTextContent(fmt.Sprintf(\"Hello, %s!\", arguments.Title)), mcp_golang.RoleUser)), nil\n\t})\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t\u002F\u002F 注册资源 (Resource)\n\terr = server.RegisterResource(\"test:\u002F\u002Fresource\", \"resource_test\", \"This is a test resource\", \"application\u002Fjson\", func() (*mcp_golang.ResourceResponse, error) {\n\t\treturn mcp_golang.NewResourceResponse(mcp_golang.NewTextEmbeddedResource(\"test:\u002F\u002Fresource\", \"This is a test resource\", \"application\u002Fjson\")), nil\n\t})\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t\u002F\u002F 启动服务\n\terr = server.Serve()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t\u003C-done\n}\n```\n\n### 2. 创建 HTTP 服务端 (可选)\n\n如果你需要无状态的 HTTP 通信（不支持双向通知），可以使用内置的 HTTP 传输或 Gin 框架集成：\n\n```go\n\u002F\u002F 标准 HTTP 传输\ntransport := http.NewHTTPTransport(\"\u002Fmcp\")\ntransport.WithAddr(\":8080\")\nserver := mcp_golang.NewServer(transport)\n\n\u002F\u002F 或者使用 Gin 框架\n\u002F\u002F transport := http.NewGinTransport()\n\u002F\u002F router := gin.Default()\n\u002F\u002F router.POST(\"\u002Fmcp\", transport.Handler())\n\u002F\u002F server := mcp_golang.NewServer(transport)\n```\n\n### 3. 创建 MCP 客户端 (Client)\n\n以下示例展示如何通过 `stdio` 启动一个子进程作为服务器，并作为客户端调用其工具。\n\n```go\npackage main\n\nimport (\n    \"context\"\n    \"log\"\n    \"os\u002Fexec\"\n    mcp \"github.com\u002Fmetoro-io\u002Fmcp-golang\"\n    \"github.com\u002Fmetoro-io\u002Fmcp-golang\u002Ftransport\u002Fstdio\"\n)\n\n\u002F\u002F 定义类型安全的参数\ntype CalculateArgs struct {\n    Operation string `json:\"operation\"`\n    A         int    `json:\"a\"`\n    B         int    `json:\"b\"`\n}\n\nfunc main() {\n   \u002F\u002F 启动本地服务器进程\n   cmd := exec.Command(\"go\", \"run\", \".\u002Fserver\u002Fmain.go\")\n   stdin, err := cmd.StdinPipe()\n   if err != nil {\n    log.Fatalf(\"Failed to get stdin pipe: %v\", err)\n   }\n   stdout, err := cmd.StdoutPipe()\n   if err != nil {\n    log.Fatalf(\"Failed to get stdout pipe: %v\", err)\n   }\n\n   if err := cmd.Start(); err != nil {\n    log.Fatalf(\"Failed to start server: %v\", err)\n   }\n   defer cmd.Process.Kill()\n\n    \u002F\u002F 创建并初始化客户端\n    transport := stdio.NewStdioServerTransportWithIO(stdout, stdin)\n    client := mcp.NewClient(transport)\n    \n    if _, err := client.Initialize(context.Background()); err != nil {\n        log.Fatalf(\"Failed to initialize: %v\", err)\n    }\n\n    \u002F\u002F 调用工具\n    args := CalculateArgs{\n        Operation: \"add\",\n        A:         10,\n        B:         5,\n    }\n    \n    response, err := client.CallTool(context.Background(), \"calculate\", args)\n    if err != nil {\n        log.Fatalf(\"Failed to call tool: %v\", err)\n    }\n    \n    if response != nil && len(response.Content) > 0 {\n        log.Printf(\"Result: %s\", response.Content[0].TextContent.Text)\n    }\n}\n```\n\n### 4. 集成到 Claude Desktop\n\n若要在 Claude Desktop 中使用你编写的 Go 服务器，请在配置文件 `~\u002FLibrary\u002FApplication Support\u002FClaude\u002Fclaude_desktop_config.json` (macOS) 或对应路径下添加以下内容：\n\n```json\n{\n\"mcpServers\": {\n  \"golang-mcp-server\": {\n      \"command\": \"\u003Cyour path to golang MCP server go executable>\",\n      \"args\": [],\n      \"env\": {}\n    }\n  }\n}\n```\n*注意：请将 `\u003Cyour path to golang MCP server go executable>` 替换为你编译后的可执行文件的绝对路径。*","某后端团队希望将内部 Go 语言编写的监控数据查询服务快速接入大模型，让 AI 助手能直接调用实时指标。\n\n### 没有 mcp-golang 时\n- **手动解析繁琐**：开发者需手写大量代码解析 JSON-RPC 请求，并手动映射到 Go 结构体，容易出错且维护困难。\n- **Schema 定义割裂**：OpenAPI 或 JSON Schema 文档与代码逻辑分离，一旦参数变更，需同步修改多处定义，极易产生不一致。\n- **样板代码冗余**：为了实现标准的 MCP 协议交互，需编写大量重复的握手、错误处理和响应封装代码，核心业务逻辑被淹没。\n- **调试周期漫长**：缺乏类型安全保护，参数类型错误或必填项缺失往往要在运行时才能发现，排查耗时。\n\n### 使用 mcp-golang 后\n- **原生结构体驱动**：直接定义带 `jsonschema` 标签的 Go 结构体作为参数，mcp-golang 自动完成 Schema 生成、反序列化及校验。\n- **代码即文档**：工具参数的定义完全内嵌于代码结构中，修改结构体字段即自动更新协议描述，确保逻辑与文档永远同步。\n- **极简开发体验**：仅需几行代码注册工具函数，mcp-golang 自动处理所有 MCP 端点路由和协议细节，开发者只关注业务实现。\n- **编译期安全保障**：利用 Go 的强类型特性，在编译阶段即可拦截参数类型错误，大幅减少运行时异常，提升服务稳定性。\n\nmcp-golang 通过“代码即协议”的理念，将原本复杂的 MCP 服务端开发简化为定义结构体和函数的自然过程，极大降低了 Go 生态接入大模型的门槛。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmetoro-io_mcp-golang_e4fec046.png","metoro-io","Metoro","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fmetoro-io_a1efa346.png","",null,"github@metoro.io","metoro.io","https:\u002F\u002Fgithub.com\u002Fmetoro-io",[81],{"name":82,"color":83,"percentage":84},"Go","#00ADD8",100,1210,120,"2026-04-03T10:41:55","MIT",4,"Linux, macOS, Windows","未说明",{"notes":93,"python":94,"dependencies":95},"该工具是基于 Go 语言开发的 Model Context Protocol (MCP) 实现，无需 Python 环境。主要通过 'go get' 安装。支持 stdio（全功能、双向通信）和 HTTP（无状态、不支持通知）两种传输方式。若需在 Claude Desktop 中使用，需配置可执行的 Go 二进制文件路径。","不适用",[96,97,98],"Go (版本未说明，需支持 go modules)","github.com\u002Fmetoro-io\u002Fmcp-golang","github.com\u002Fgin-gonic\u002Fgin (可选，用于 HTTP 传输)",[14,13],"2026-03-27T02:49:30.150509","2026-04-06T22:03:00.030167",[103,108,113,118,123,128,133],{"id":104,"question_zh":105,"answer_zh":106,"source_url":107},20078,"HTTP 示例无法正常工作，客户端程序一直阻塞怎么办？","这是一个已知的 Bug，原因是 HTTPTransport 和 baseTransport 具有相同的成员变量，调用 SetMessageHandler 时设置错了对象，导致实际的消息处理器为空。该问题已在 PR #76 中修复，并包含在 v0.11.0 版本中。请升级库版本至 v0.11.0 或更高版本来解决此问题。","https:\u002F\u002Fgithub.com\u002Fmetoro-io\u002Fmcp-golang\u002Fissues\u002F77",{"id":109,"question_zh":110,"answer_zh":111,"source_url":112},20079,"如何在 Cursor 编辑器中集成 MCP Server 时解决“Failed to create client”错误？","该错误通常是因为使用的库版本尚未完整实现 SSE（Server-Sent Events）传输协议。有用户指出相关模块（如 transport\u002Fsse\u002Fsse_server.go）当时可能是空文件或未完全实现。建议检查当前使用的库版本是否支持 SSE，或者尝试使用其他已验证的传输方式（如 stdio）。如果必须使用 SSE，请关注官方发布的最新修复版本或参考社区提供的临时修复方案。","https:\u002F\u002Fgithub.com\u002Fmetoro-io\u002Fmcp-golang\u002Fissues\u002F82",{"id":114,"question_zh":115,"answer_zh":116,"source_url":117},20080,"遇到 'method not found: resources\u002Ftemplates\u002Flist' 错误如何解决？","该错误是由于缺少对特定资源方法的处理程序导致的。此问题已在 PR #73 中修复，并于 v0.10.0 版本发布。请将您的 mcp-golang 库升级到 v0.10.0 或更高版本，即可解决该报错。","https:\u002F\u002Fgithub.com\u002Fmetoro-io\u002Fmcp-golang\u002Fissues\u002F88",{"id":119,"question_zh":120,"answer_zh":121,"source_url":122},20081,"运行 README 中的 Prompt 注册示例时出现栈溢出（stack overflow）错误怎么办？","这是由于 promptResponseSent 结构体的 MarshalJSON 方法中存在递归序列化逻辑导致的无限循环。该问题已在最新版本中修复。请确保您使用的是最新的库版本，避免使用存在此 Bug 的旧版本（如 v0.3.0）。更新后，Prompt 注册功能应能正常工作。","https:\u002F\u002Fgithub.com\u002Fmetoro-io\u002Fmcp-golang\u002Fissues\u002F50",{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},20082,"内部协议层出现 panic 错误：'Protocol.Connect panic error' 是什么原因？","该 Panic 发生在 internal\u002Fprotocol\u002Fprotocol.go 第 187 行附近。当处理 JSONRPC 错误类型消息时，代码向 handleResponse 方法传递了 nil 指针作为第一个参数，而该方法内部直接访问了指针字段而未进行非空检查，导致空指针解引用。这属于代码逻辑缺陷，通常需要等待维护者提交修复补丁。建议检查是否有更新的版本修复了此空指针检查问题，或在本地源码中为 handleResponse 方法添加针对 response 参数的 nil 判断逻辑。","https:\u002F\u002Fgithub.com\u002Fmetoro-io\u002Fmcp-golang\u002Fissues\u002F96",{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},20083,"目前是否支持构建 MCP 客户端（Client）？","是的，基础客户端支持已在 PR #56 中添加。如果您需要创建新的 MCP 客户端，可以参考官方文档中关于构建客户端的教程，并使用包含此 PR 之后的库版本。维护者表示这是内部优先事项之一，相关功能正在不断完善中。","https:\u002F\u002Fgithub.com\u002Fmetoro-io\u002Fmcp-golang\u002Fissues\u002F40",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},20084,"HTTP 传输层似乎无法工作，是否有修复计划或临时方案？","确实有用户报告 HTTP 传输层存在多个问题。维护者已确认这些问题，并有相关的修复 PR（如 PR #66）正在审查中。在正式合并之前，您可以尝试拉取该 PR 的代码分支进行测试。此外，项目已开启 Discussions 板块，建议前往那里讨论具体的配置细节和临时变通方案。","https:\u002F\u002Fgithub.com\u002Fmetoro-io\u002Fmcp-golang\u002Fissues\u002F63",[139,144,148,153,158,162,167,172,177,182,187,192,197,202,207,212,217,222],{"id":140,"version":141,"summary_zh":142,"released_at":143},118115,"v0.16.1","## 更改日志\n* 1d221cb2b312b6e5f64e654baa521476ea437e6b 修复 HTTP 传输响应映射的竞态条件\n* e5d629c5cd43e3470dcd3bf4cbc675a90bfcf513 修复 URL (#131)\n\n","2026-02-25T20:58:25",{"id":145,"version":146,"summary_zh":142,"released_at":147},118116,"v0.16.0-hotfix-map-race","2026-02-25T20:56:04",{"id":149,"version":150,"summary_zh":151,"released_at":152},118117,"v0.16.0","## 更改日志\n* 1572ffcc9c00e9666a210a56815942720ca73f39 支持 HTTP 通知\u002F初始化端点，并修复提示符\u002F列表崩溃问题 (#117)","2025-08-21T14:03:59",{"id":154,"version":155,"summary_zh":156,"released_at":157},118118,"v0.15.0","## 更改日志\n* 8b3101b8c8a150e3e603ece15421ffda0373290a 修复高负载下的并发写入问题 (#123)\n\n","2025-08-21T13:56:38",{"id":159,"version":160,"summary_zh":156,"released_at":161},118119,"v0.14.0","2025-07-12T11:42:26",{"id":163,"version":164,"summary_zh":165,"released_at":166},118120,"v0.13.0","## 更改日志\n* 6598b3d737ebf5246e30df49aa2d0daf7f04fd17 修复：正确解析客户端 ReadResource 中的响应 (#100)\n* 2d128c3805c05570cdb0de58bcd33e35e20011c0 修复：修复错误处理程序中的空指针解引用错误 (#109)\n\n","2025-05-22T10:01:50",{"id":168,"version":169,"summary_zh":170,"released_at":171},118121,"v0.12.0","## 更改日志\n* 438ef9472e12204f92eed2f7cc68f4377a634794 HTTPClientTransport WithClient (#113)\n* 8be372887b3bbaa4b6b4826abf30ea0993aa1be4 还原“HTTPClientTransport WithClient” (#114)\n* d8db3594cc0d20f27a759566e36f34edbfd01269 更新 quickstart.mdx (#108)\n* 162a6c3a85c759ba3abdb20192ba010cc9360cf6 在 NewHTTPClientTransport 中使用客户端接口 (#111)\n* b477ff56cf8c09744c5ead74c14e3caa857e39c0 功能：添加 WithServerInstructions() 构造函数。(#102)\n\n","2025-05-07T12:46:18",{"id":173,"version":174,"summary_zh":175,"released_at":176},118122,"v0.11.0","## 更改日志\n* d21987a6b1a4d01e53fc626ae76bcaedc222a181 修复 HTTP 传输消息处理 (#76)\n\n","2025-04-18T13:15:12",{"id":178,"version":179,"summary_zh":180,"released_at":181},118123,"v0.10.0","## 更改日志\n* e00d4be2d9d38a84d9d5a5658a31ceb77f34edfb 添加资源模板 (#73)\n\n","2025-04-18T13:04:52",{"id":183,"version":184,"summary_zh":185,"released_at":186},118124,"v0.9.0","## 更改日志\n* 6f6550eb056f607bda13a908f21bec15cb148521 修复\u002F支持连接 Claude MCP 文件系统 (#85)\n* 5ac0ad7fe94acc5339fa74b9816e3a984c111829 [#70] 处理无正文的列表资源 (#71)\n\n","2025-04-09T12:58:43",{"id":188,"version":189,"summary_zh":190,"released_at":191},118125,"v0.8.0","## Changelog\n* 1fa18e024ab608dc19dafca3614e3b42657f0326 Expose tool response (#61)\n\n","2025-01-22T20:00:26",{"id":193,"version":194,"summary_zh":195,"released_at":196},118126,"v0.7.0","## Changelog\n* 682b7ad35ffc0d16149c9461d1f9a35515ee59bb Add custom headers to http client (#60)\n\n","2025-01-22T15:54:07",{"id":198,"version":199,"summary_zh":200,"released_at":201},118127,"v0.6.0","## Changelog\n* 219a9729ed499e5b93b65160c496733acc23e137 Add stateless http transport (#59)\n* 7324383a25bc270b155138226d967daacc5dd344 Indent (#58)\n\n","2025-01-22T13:46:21",{"id":203,"version":204,"summary_zh":205,"released_at":206},118128,"v0.5.0","## Changelog\n* 142d45f56fa2ae71121aad45801f701bb0eadb8c Add basic client (#56)\n* 2f1bb12365f63631c00d9735be31e739423a69a1 Handle list tools with no body (#55)\n* 4b52512ea2740477a6be7d83b50347309289128f Update readme with client usage (#57)\n\n","2025-01-21T18:52:21",{"id":208,"version":209,"summary_zh":210,"released_at":211},118129,"v0.4.0","## Changelog\n* d51afb6a80da9d65b0e0fd2c310e81f4df1f3e65 Add docs for using with claude (#48)\n* 9cc9607607eded55f872f823523e6449ea4099f4 Allow people to rate docs and raise issues (#49)\n* b6b1dcabed1afef2166cdc9d5fa1e1be4939a45d Fix issue with prompt serialization (#51)\n\n","2024-12-15T12:04:13",{"id":213,"version":214,"summary_zh":215,"released_at":216},118130,"v0.3.0","## Changelog\n* c1a5be6c9243d7a1173308aeced2e94a29738290 Add docs around change notifications (#44)\n* ffcdc991f06ab21bd3f9da3f3bbe751eca272b88 Add docs on pagination (#47)\n* 26a1698e581554e3380c3884c996a6aef7be3d15 Support pagination (#46)\n* ccf0a033721aeed51303c1932f43242a85ba734f Update favicon (#45)\n\n","2024-12-13T11:04:34",{"id":218,"version":219,"summary_zh":220,"released_at":221},118131,"v0.2.0","## Changelog\n* fc0c3086fbeaa0d57ccbc6895f921a385694bd55 Add weather tool example (#41)\n* 4ce34a6c7966cabdd5de21e3554675166e200438 Disable caching in ci as its super slow (#35)\n* ee31872d39fa38e495dff386d5ac73997f603810 Fix typo in function name (#43)\n* d5ed46738c30e8b53dd7f1dd9a8dfe15e824c6f4 Implements handler update notifications (#42)\n* 0fca40abb8552e2032cf34307ea0307f7606afb6 Update README.md with example mcp server (#36)\n* eba9334407ce6840a56ff1c7cf194aa4b612ebde Update docs to add tool usage (#37)\n* 90cfe95eb85f28d9adf5a33815180e08eb902873 Update readme (#39)\n* 7871b523f84dbda427fd15013a3fc953f1a894c9 Update the readme (#38)\n\n","2024-12-12T18:28:49",{"id":223,"version":224,"summary_zh":225,"released_at":226},118132,"v0.1.0","## Changelog\n* b7e0f26c52bf2b40ecd4ca622338f8cc1805f528 Add MIT License\n* db6e54511cf3d5890106afafce6db91462d3ac91 Add SSE\n* de1d5e5682c29b28875a1498589f5ff7eb787a86 Add SSE Server\n* dff06d05b3c74765d86c50f2c1643369dd84588e Add base docs\n* f969640aa76b77ee256235aad0f2cbce2b5f1225 Add debugging\n* b158af828462d9bc02448bd40467d061712ac185 Add discord\n* f4364d81071162014052d70ad17c8f5c579e895a Add docs link to readme\n* 2fba96fff41651ac5b3d9f21590437a12bebf8f3 Add docs to integration test (#32)\n* 811eaeff917db8fae4497abfcba0f3d75ad0ac9a Add footers\n* 0647cc3e80d74510306f5d490664fc6cca2d52b1 Add goreleaser to release on tag push (#33)\n* 9ef81c4f489920866300ce3718e354247f6e6c5c Add integration tests (#29)\n* a7e7b1693b2d172ba774eb7a141611bda82bfc36 Add library goal (#12)\n* 8edcf8f03311c051e2d89b035843f009aac55db2 Add logos\n* 63842b5f506db21f125e5f8466a1b9b24182bf09 Add more handler logic\n* 96b8625fba82ccab5eab64dc8a39fd85c7b3d86a Add schema\n* 003569360161189ab2acd712aab94795809d19ed Add some more badges (#30)\n* e9c1312db31c016008a31e9a61c3048db5de2a93 Add stdio\n* 10643204b4820bfed5a60168e2b36ab32d0df0be Add stdio server implementation\n* c5307cd71a50c9c8e1d6b0bf99b865451762a343 Add stdio utils\n* 2444a0d6ef6eb661afacd279a8bed6751e0d5a8c Add template for docs\n* 2b762e1937ac673ac175941476bea2ad3660deb7 Add test comments\n* e9cfb63de5b68760c14c25274d7205d276b0ec04 Add testing prior to merge (#28)\n* a49d63160487a669ff2760bdcf6605b78ab91ba4 Add tests and define boundaries of the api components (#27)\n* c4831d6d2dcbafc87abf7c6c355e4d6868091150 Add the tool api\n* 6277ef6546040f45605249242245472a899b14fd Add transport\n* ed11052e4c81e4a180ae91fa42e1e8d059bd054f Add type generation from schema\n* 4c9f5190e036f370d76258f3031f1dbda0f8d0b2 Add validate\n* d4a21b4af9002e07bb3bc76ee2071fb49152bd85 Fix\n* 208ca38aced75b850427abd9595a40de8eff5b2a Fix\n* 353e92bff0322c418642c3c7c8f7a394db83af20 Fix code\n* 35eb84f77694b3974ac944de947af78e692b363b Fix code\n* 5e55ea1f95add290a5e3952a1b568c5d1adb61c7 Fix tests\n* 8abc6be46dda73c93e8128b77ff215d89d6a2ec5 Fix transport implementation for stdio\n* f331ff1da238c90a0d2645f7bdd3f4c754ce733c Fix types\n* 228a40a5e87b455b3676b3ac2d251d40cd8ba2c6 Fix utils\n* 8455dbbbc36927f199c8b2f4e22d8e3d048e9c1c Hide objects that dont need to be exported (#11)\n* 8369c18b834d6a97a8b2579704c0ff517999ad29 Implement prompts\n* e0543648419533371846fbc8bb92dabbaaf24a6d Implement resources\n* 9af43a3945503e3223e12e3fd87f6db7411750d9 Implement the protocol\n* f1a7a7b1f4a297db349878824f6e74181bf5285c Init\n* 60041ef1f19e82d7a889ab744abf95b7e32d1da7 Init mod\n* 1663ccc783a2de92db9aa11f2da239432888844e Kinda working\n* f8760512fccfb5f697354d17b3c1615a4ffed6af Mock around in the server\n* 72aa9d8a01f7a915f9821e4d8aed648dcb24aa09 More structure changes\n* c8ff070aa319b250af8bf3983a98b72336f9f680 More tests\n* 17c4b2e33f6d5d6aa7ff53f8aade661fdf58ac86 Move to server implementation\n* 756f052907eb6cbb92cb0623e2d3cf4aa4ed370b Nearly added initialize\n* 8065b65e68f8bbdc137d79721022ed910a1e858a Overall idea\n* e018ff1fee3bc63bb4ce6eba796374b9bf43ce0c Refactor location\n* dc5e436f036007634bf0bc89c01480c31dbdfc78 Remove empty checkbox from README (#10)\n* ceb9a42656724944b5311e52b68e21f5662fc268 Rename\n* e6ec5e0be24127d40b6fb0fd9b50a6b078fd0551 Seperate everything out into packages\n* f2729dd85672261b692c388eacb838e4b4934dba Stab one\n* 2dd1734c683037d7cbaa36fce063d0cc63c29d2f Tool api looking nice\n* 20e5b7569fb70ee09e9446c599ea768619f11d9b Update\n* 6fd63e495c4843fe1a3d96aa65911888ab67a57c Update basic usage in docs (#14)\n* e5c74cda9cb37f9edfc26ca909e1d50dea1c4524 Update goreleaser version (#34)\n* 0028df97ff4f1a6d42780c2fce4621d1ab2c6396 Update h1 of readme (#31)\n* c08de36697fffa2f4ea8ef3faa09fdd21077da61 Update quick start (#13)\n* 60016ca9df76dae950d6ebcccc12c06db2d54375 Update readme\n* 711006a4efd5107aad832aa263e923a94536364f Update readme.md\n* 4cc43a383edbd3f511fe0b1844919ca9db846b3a Update the example (#9)\n* fc4fcf3a144c9a2d105b1a3167d9602ebf3f08ab Update tool api\n* f74305ca1760869fcba96db364a8c95ffd5d6279 Update tool api\n* 3d782e322f9ad2db7feaf51872c9e7a8850ee5aa Update types\n* 93b43a31039499bc3aab9789d39e08f2f1da0e05 Update types\n* 1dd0b3ffa7a26a8bea00379c14a39d1589e74adf Updates the code\n* 6b889d410af6433f51ce1bf0ea648f6d54ba0217 Working\n* 27142469027120b157a57e907e05f17afca53b12 Working\n* a79e6b07cfab5c6ab57eb45490d37a69b81e25b9 Working\n* 006ace67f7ca196279380095e486b3ee94e22a4e Working\n* 5dd0975eabdda4c6f9a99388f5947d3ec9afaedd Working\n* 2829cb15cc5b8119c5488ae1aa5d134babf28adb Working\n* a4656ac1a53611ef91b235973c59a711470480da Working initialize\n* b7b333da014b0040ea22937332d5b1d4c355fcad Working resources e2e\n\n","2024-12-11T20:53:35"]