使用说明
mcp客户端
GO MCP客户端使用HTTP传输,支持来自服务器的采样请求。
概述
该客户:
- 通过HTTP/HTTPS传输连接到MCP服务器
- 在初始化过程中声明采样能力
- 处理来自服务器的传入采样请求
- 使用模拟LLM生成响应(替换为真正的LLM集成)
用法
- 启动支持采样的MCP服务器
- 要使用以下示例,您可以使用 数据库查询服务器
- 更新中的服务器URL
main.go:
httpClient, err := client.NewStreamableHttpClient(
"http://your-server:port", // Replace with your server URL
)
- 启动客户端
go run .
示例
将以下示例复制并粘贴到 callTool() 在 main.go 文件
execute_query示例
execute_query示例-SELECT*FROM表名
# Execute a simple SELECT query
echo '{
"method": "tools/call",
"params": {
"name": "execute_query",
"arguments": {
"database": "primary",
"query": "SELECT * FROM movies",
"parameters": {},
"format": "json",
"limit": 100
}
}
}' | mcp-database-query-server
此映射到 mcp。调用工具请求
args := make(map[string]interface{})
args["database"] = "postgres"
args["query"] = "SELECT * FROM movies"
args["format"] = "json"
args["limit"] = 100
request := mcp.CallToolRequest{
Params: mcp.CallToolParams{
Name: "execute_query",
Arguments: args,
},
}
execute_query示例-SELECT*FROM表名
args := make(map[string]interface{})
par["database"] = "postgres"
args["query"] = `CREATE TABLE IF NOT EXISTS movies (
id SERIAL PRIMARY KEY,
title VARCHAR(200),
genre VARCHAR(250),
year int,
created TIMESTAMP
)`
request := mcp.CallToolRequest{
Params: mcp.CallToolParams{
Name: "execute_query",
Arguments: args,
},
}
execute_query示例-SELECT*FROM表名
args := make(map[string]interface{})
par["database"] = "postgres"
args["query"] = `INSERT INTO movies.comedy (title, genre, year)
VALUES
('Magellan', 'comedy', 2022),
('movie 34', 'comedy ', 2012),
('Mrxxx', 'romantic comedy ', 2011);`
request := mcp.CallToolRequest{
Params: mcp.CallToolParams{
Name: "execute_query",
Arguments: args,
},
}
execute_准备好的示例
args := make(map[string]interface{})
var tables []string
args["statement_name"] = "SELECT CustomerName, Address FROM customers WHERE Country =$1 AND City LIKE $2"
par := []any{"UK", "L%"}
args["parameters"] = par
args["format"] = "json"
request := mcp.CallToolRequest{
Params: mcp.CallToolParams{
Name: "execute_prepared",
Arguments: args,
},
}
get_schema示例
# Execute a simple SELECT query
echo '{
"method": "tools/call",
"params": {
"name": "get_schema",
"arguments": {
"database": "primary",
"tables": ["customers"],
"detailed": true,
}
}
}' | mcp-database-query-server
此映射到 mcp。调用工具请求
args := make(map[string]interface{})
var tables []string
t := append(tables, "customers")
t := append(tables, "comedy")
args["database"] = "sql"
args["tables"] = t
args["detailed"] = true
request := mcp.CallToolRequest{
Params: mcp.CallToolParams{
Name: "get_schema",
Arguments: args,
},
}
get_connection_status示例
# Execute a simple SELECT query
echo '{
"method": "tools/call",
"params": {
"name": "get_connection_status",
"arguments": {
"database": "the name of the DB you want to check the status for",
"tables": ["customers"],
"detailed": true,
}
}
}' | mcp-database-query-server
此映射到 mcp。调用工具请求
args := make(map[string]interface{})
args["database"] = "mcp-query-db"
request := mcp.CallToolRequest{
Params: mcp.CallToolParams{
Name: "get_connection_status",
Arguments: args,
},
}