godoc-mcp-server

Servidor MCP para proporcionar paquetes de golang y su información desde pkg.go.dev

Documentación

godoc-mcp-server

Busca paquetes de Golang y su documentación desde pkg.go.dev, y proporciona la información a un LLM como servidor MCP.

Instalación

Puedes descargar el binario compilado desde la página de lanzamientos.

O puedes instalarlo desde el código fuente, compilándolo tú mismo:

go install github.com/yikakia/godoc-mcp-server/cmd/godoc-mcp-server@latest

Uso

Solo usa tu cliente para hacer la solicitud. Se ejecuta en stdio.

Pendiente

  • localCache
    • usar una caché local para evitar buscar cada vez (de un usuario de reddit)
  • searchPackage
    • cuántos paquetes lo importan
  • getPackageInfo
    • fixme: los subpaquetes necesitan un nuevo adaptador
    • obtener ejemplos
  • release
    • usar GitHub Actions para publicar en múltiples plataformas

Experiencia de desarrollo

La descripción es muy importante; al describir el parámetro, debes indicar al cliente cómo usar la salida de una herramienta y cambiar el formato para que coincida con la entrada de otra herramienta.

Por ejemplo, la salida de searchPackage contiene el nombre del subpaquete, pero no contiene el nombre del paquete. Así que, si quieres que el LLM use getPackageInfo para obtener la información del subpaquete, escribí la descripción del parámetro packageName sobre cómo usarlo junto con searchPackage:

nombre del paquete para la búsqueda. Si usaste searchPackages antes y el usuario quiere obtener la información del subpaquete, debes combinarlos. Por ejemplo, cuando el usuario consulta mcp y devuelve packageName: github.com/mark3labs/mcp-go/mcp y el subpaquete client, entonces si el usuario quiere obtener la información del paquete client, debes establecer packageName en github.com/mark3labs/mcp-go/mcp/client en lugar de client

Con esta descripción detallada, el LLM te indicará algunos nombres de subpaquetes después de la búsqueda. Puedes simplemente decirle qué paquete quieres obtener, o qué paquete y el nombre del subpaquete; él los combinará y llamará a getPackageInfo para obtener la información.

Así que quizás deberíamos hacer que la descripción sea configurable por el usuario, para que la herramienta sea más útil y eficiente.

Uso como biblioteca

La API de Go exportada de este módulo debería considerarse actualmente inestable y sujeta a cambios que rompan compatibilidad. En el futuro, podríamos ofrecer estabilidad; por favor, abre un issue si hay un caso de uso donde esto sería valioso.

Licencia

Este proyecto está licenciado bajo los términos de la licencia de código abierto MIT. Consulta MIT para los términos completos.