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.