Fire in da houseTop Tip:Paying $100+ per month for Perplexity, MidJourney, Runway, ChatGPT and other tools is crazy - get all your AI tools in one site starting at $15 per month with Galaxy AI Fire in da houseCheck it out free

mcp-client-go

MCP.Pizza Chef: yincongcyincong

mcp-client-go is a Golang client library designed to integrate multiple Model Context Protocol (MCP) servers seamlessly. It provides a unified API for registering and interacting with various MCP-based services like Amap, Github, and GoogleMap. The client supports modular service types, enabling easy extension and management of MCP servers with a simple, intuitive interface for tool execution.

Use This MCP client To

Integrate multiple MCP servers into Go applications Register and manage MCP-based services programmatically Execute MCP tools via a unified Go client interface Build Go-based AI agents leveraging diverse MCP data sources Simplify multi-service MCP orchestration in Golang projects

README

📦 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
  • Provide prompt to trigger mcp request doc

📋 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 http-streamable
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
atlassian Model Context Protocol (MCP) server for Atlassian products (Confluence and Jira) doc
notion MCP server for the Notion API. doc
cloudflare MCP Server for Cloudflare's API. doc
binance MCP Server for Binance's API. doc
youtube MCP Server for Youtube's API. doc
shopify MCP Server for Shopify's API. doc
duckduckgo MCP Server for Duckduckgo's API. doc
aliyun MCP Server for Aliyun's API. doc aliyun
bilibili MCP Server for Bilibili's API. doc bilibili
bitcoin MCP Server for Bitcoin's API. doc bitcoin
airbnb MCP Server for Airbnb's API. doc airbnb
jira MCP Server for Jira's API. doc
twitter MCP Server for Twitter's API. doc
leetcode MCP Server for Leetcode's API. doc
iterm MCP Server for Iterm's API. doc iterm
telegram MCP Server for Telegram's API. doc telegram
zoomeye MCP Server for Zoomeye's API. doc
ipfs MCP Server for IPFS's API. doc
k8s MCP Server for K8s's API. doc
apple-shortcut MCP Server for Apple Shortcut's API. doc
ms-365 MCP Server for MS356's API. doc
tinybird MCP Server for TinyBird's API. doc
mysql MCP Server for Mysql's API. doc
google calendar MCP Server for Google Calendar's API. doc
sqlite MCP Server for Sqlite's API. doc

🚀 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 project


🧱 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",
})
/
conf := clients.InitSSEMCPClient("npx-amap-maps-mcp-server", "http://127.0.0.1")
/
conf := clients.InitHttpMCPClient("npx-amap-maps-mcp-server", "http://127.0.0.1")

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.

mcp-client-go FAQ

How do I register a new MCP server with mcp-client-go?
Use the client’s registration API to add MCP servers by specifying their service type and connection details.
Can mcp-client-go handle multiple MCP servers simultaneously?
Yes, it supports modular management and interaction with multiple MCP servers concurrently.
Is mcp-client-go limited to specific MCP servers?
No, it supports various MCP servers like Amap, Github, and GoogleMap, and can be extended to others.
How does mcp-client-go simplify tool execution?
It provides a simple and intuitive interface to execute tools exposed by MCP servers within Go applications.
What programming language is mcp-client-go built for?
It is a client library specifically designed for the Go (Golang) programming language.
Does mcp-client-go support secure communication with MCP servers?
While the client facilitates integration, security depends on the underlying transport and MCP server configurations.
Can mcp-client-go be used with different LLM providers?
Yes, it is provider-agnostic and can integrate MCP servers that work with models like OpenAI, Claude, and Gemini.