godoc-mcp-server
search golang packages and their docs from pkg.go.dev, provide the infomation to llm as mcp server
Install
You can download the compiled binary from the releases page.
Or you can install it from source, compile it by yourself:
go install github.com/yikakia/godoc-mcp-server/cmd/godoc-mcp-server@latest
Usage
just use your client to request. it servers on stdio
Todo
- localCache
- [x] use a local cache to avoid search every time(From reddit user)
- searchPackage
- [x] imported by how many packages
- getPackageInfo
- [x] fixme: subpackage need new adapter
- [x] get examples
- release
- [x] use github actions to release for multiple platforms
Develop Experience
The description is very important, when describing the param should tell the client how to use one tool's output and change the format to match another tool's input.
For example, the output of searchPackage contains subpackage's name, but do not contain
the package's name. So if want the llm to use getPackageInfo to get the subpackage's info,
I wrote the description for param packageName about how to use it to work with searchPackage:
package name for search. if use searchPackages before, and user want to get the subpackage info. you should plus them for example, when user query mcp, and it return packageName: github.com/mark3labs/mcp-go/mcp and subpackage client, then if user want to get the client package info, you should set the packageName to github.com/mark3labs/mcp-go/mcp/client rather than client
When using this detail description, the llm will tell you some subpackage's name after
search. You can just tell it which package you want to get info, or which package and the
subpackage's name, it will combine them and call getPackageInfo to get the info.
So maybe we should make the description configurable by user, to make the tool more useful and efficiency.
Library Usage
The exported Go API of this module should currently be considered unstable, and subject to breaking changes. In the future, we may offer stability; please file an issue if there is a use case where this would be valuable.
License
This project is licensed under the terms of the MIT open source license. Please refer to MIT for the full terms.
Recommend MCP Servers 💡
label-studio
This project provides a Model Context Protocol (MCP) server that allows interaction with a Label Studio instance using the label-studio-sdk. It enables programmatic management of labeling projects, tasks, and predictions via natural language or structured calls from MCP clients. Using this MCP Server, you can make requests like: * "Create a project in label studio with this data ..." * "How many tasks are labeled in my RAG review project?" * "Add predictions for my tasks." * "Update my labeling template to include a comment box."
@idachev/mcp-javadc
A Model Context Protocol (MCP) server for decompiling Java class files, allowing AI assistants to convert Java bytecode into readable source code.
@maxim-saplin/mcp_safe_local_python_executor
Stdio MCP Server wrapping custom Python runtime (LocalPythonExecutor) from Hugging Faces' `smolagents` framework. The runtime combines the ease of setup (compared to docker, VM, cloud runtimes) while providing safeguards and limiting operations/imports that are allowed inside the runtime.
mcp-wecombot-server
An MCP server application that sends various types of messages to the WeCom group robot.
Ryuhei-So/mermaid-cli-server
A MCP server that generates PNG images from Mermaid markdown using @mermaid-js/mermaid-cli.
mcp-server-taskwarrior
Node.js server implementing Model Context Protocol (MCP) for TaskWarrior operations. Allows viewing, filtering, adding, and marking tasks as complete.