
📦 mcp-client-go
a mcp client for go. Integrate multiple MCP servers
What is mcp-client-go?
mcp-client-go
is a Golang client library designed for the Model Context Protocol (MCP), enabling developers to integrate and interact with multiple MCP servers through a unified API.
How to use mcp-client-go?
To use mcp-client-go
, install it via Go with the command go get github.com/yincongcyincong/mcp-client-go
, and follow the provided examples to initialize clients and execute tools.
Key features of mcp-client-go?
- Easy integration with various MCP-compatible services like Amap, GitHub, and Google Maps.
- Modular support for different service types.
- Unified registration and client management for seamless operations.
- Intuitive interface for executing tools.
Use cases of mcp-client-go?
- Integrating with mapping services like Amap and Google Maps.
- Accessing and managing data from GitHub and other APIs.
- Automating tasks through browser automation with services like Puppeteer.
FAQ from mcp-client-go?
- What is the Model Context Protocol (MCP)?
MCP is an open standard that allows AI systems to interact with various data sources and tools.
- Is mcp-client-go free to use?
Yes! It is open-source and available under the MIT License.
- How can I contribute to mcp-client-go?
You can contribute by submitting issues or pull requests on the GitHub repository.
📦 mcp-client-go
mcp-client-go
is a Golang client library for the Model Context Protocol (MCP). It allows developers to register
and interact with various MCP-based services such as Amap (Gaode Maps) using a unified API.
✨ Features
- Easy integration with MCP-compatible services
- Modular support for service types (e.g., Amap, Github, GoogleMap)
- Unified registration and client management
- Simple and intuitive tool execution interface
📋 Supported Services
MCP Server | Description | doc | demo |
---|---|---|---|
redis | A Model Context Protocol server that provides access to Redis databases. | doc | redis |
github | The GitHub MCP Server is a Model Context Protocol (MCP) server that provides seamless integration with GitHub APIs | doc | github |
aws | An MCP server implementation for retrieving information from the AWS Knowledge Base using the Bedrock Agent Runtime. | doc | aws |
sequential_thinking | An MCP server implementation that provides a tool for dynamic and reflective problem-solving through a structured thinking process. | doc | - |
firecrawl | A Model Context Protocol (MCP) server implementation that integrates with Firecrawl for web scraping capabilities. | doc | firecrawl |
postgresql | A Model Context Protocol server that provides read-only access to PostgreSQL databases. | doc | - |
gitlab | MCP Server for the GitLab API, enabling project management, file operations, and more. | doc | - |
slack | MCP Server for the Slack API, enabling Claude to interact with Slack workspaces. | doc | - |
puppeteer | A Model Context Protocol server that provides browser automation capabilities using Puppeteer. | doc | - |
everart | Image generation server for Claude Desktop using EverArt's API. | doc | - |
sentry | A Model Context Protocol server for retrieving and analyzing issues from Sentry.io | doc | - |
filesystem | Node.js server implementing Model Context Protocol (MCP) for filesystem operations. | doc | filesystem |
fetch | A Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption. | doc | - |
googlemap | MCP Server for the Google Maps API. | doc | googlemap |
flomo | This is a TypeScript-based MCP server help you write notes to Flomo. | doc | - |
chatsum | This MCP Server is used to summarize your chat messages. | doc | - |
amap | This repository is a collection of reference implementations for the Model Context Protocol (MCP), as well as references to community built servers and additional resources. | doc | amap |
baidumap | This MCP Server is used to baidumap | doc | - |
blender | BlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP) | doc | - |
framelink | Give Cursor, Windsurf, Cline, and other AI-powered coding tools access to your Figma files with this Model Context Protocol server. | doc | - |
playwright | A Model Context Protocol (MCP) server that provides browser automation capabilities using Playwright. | doc | playwright sse |
tavily | The Model Context Protocol (MCP) is an open standard that enables AI systems to interact seamlessly with various data sources and tools, facilitating secure, two-way connections. | doc | tavily |
time | A Model Context Protocol server that provides time and timezone conversion capabilities. | doc | time uvx |
victoriametrics | A Model Context Protocol server that provide access to victoria metrics databases. | doc | victoriametrics |
🚀 Getting Started
Install
install npx
, uvx
, docker
, and put them to env!
go get github.com/yincongcyincong/mcp-client-go
🧪 Example
client demo
app demo
deepseek demo
openai demo
🧱 API Overview
Initialize Clients
conf := clients.InitStdioMCPClient("npx-amap-maps-mcp-server", "npx", []string{
"AMAP_MAPS_API_KEY=" + AmapApiKey,
}, []string{
"-y",
"@amap/amap-maps-mcp-server",
}, mcp.InitializeRequest{}, nil, nil)
/
conf := clients.InitSSEMCPClient("npx-amap-maps-mcp-server", "http://127.0.0.1", nil, nil, nil)
Register MCP Clients
clients.RegisterMCPClient(context.Background(), []*param.MCPClientConf{conf})
Get MCP Client
client, err := clients.GetMCPClient("npx-amap-maps-mcp-server")
/
client, err := clients.GetMCPClientByToolName("geo_location")
Execute Tools
client.ExecTools(ctx, "tool_name", map[string]interface{}{...})
📄 License
This project is licensed under the MIT License.