Labsco
yikakia logo

godoc-mcp-server

โ˜… 37

from yikakia

MCP server to provide golang packages and their information from pkg.go.dev

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedFreeAdvanced setup

godoc-mcp-server

search golang packages and their docs from pkg.go.dev, provide the infomation to llm as mcp server

Todo

  • localCache
    • use a local cache to avoid search every time(From reddit user)
  • searchPackage
    • imported by how many packages
  • getPackageInfo
    • fixme: subpackage need new adapter
    • get examples
  • release
    • 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.