MCP Server SDK in Golang
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"mcp-robot": {
"command": "<see-readme>",
"args": []
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
MCP Robot - Go Server Library for Model Context Protocol
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in developer-tools
Manage Supabase projects — databases, auth, storage, and edge functions
XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.
A Model Context Protocol (MCP) server and CLI that provides tools for agent use when working on iOS and macOS projects.
Asynchronous coordination layer for AI coding agents: identities, inboxes, searchable threads, and advisory file leases over FastMCP + Git + SQLite
MCP Security Weekly
Get CVE alerts and security updates for Mcp Robot and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
A Go server library for implementing Model Context Protocol (MCP) servers, built following Go conventions and inspired by the standard net/http package.
⚠️ Work in Progress: This library currently supports tools only. Resources, prompts, and other MCP features are planned for future releases.
go get github.com/makarski/mcp-robot
package main
import (
"github.com/makarski/mcp-robot/server"
"github.com/makarski/mcp-robot/tools"
)
func main() {
// Define a tool with input/output schemas
weatherTool := tools.NewTool("get_weather").
Title("Weather Information").
Description("Get current weather for a location").
Input().
WithString("location", "City name or coordinates", true).
WithBoolean("celsius", "Use celsius temperature", false).
Done().
Output().
WithString("status", "Response status", true).
WithNumber("temperature", "Temperature value", true).
WithString("conditions", "Weather conditions", true).
Done().
MarkReadOnly(true).
Build()
// Create tool function
weatherFunc := tools.ToolFunc[tools.ToolResultStructured](func(params map[string]any) (tools.ToolResultStructured, error) {
location := params["location"].(string)
return tools.ToolResultStructured{
"status": "success",
"temperature": 22.5,
"conditions": "Sunny",
"location": location,
}, nil
})
// Build and start server
server := server.NewServerBuilder("weather-server", "1.0.0").
WithTool(weatherTool, weatherFunc).
BuildHTTPServer()
server.ListenAndServe("mcp")(":8080", nil)
}
server := server.NewServerBuilder("weather-server", "1.0.0").
WithTool(weatherTool, weatherFunc).
BuildStdioServer()
// Start server
server.ListenAndServe()
The library provides validation for both input and output schemas
tool := tools.NewTool("example").
Input().
WithString("name", "User name", true). // required
WithNumber("age", "User age", false). // optional
WithBoolean("active", "Is active", true).
Done().
Build()
tool := tools.NewTool("process_data").
Input().
WithArray("items", "List of items to process", true).
Of("object", "Individual item").
WithString("id", "Item ID", true).
WithString("name", "Item name", true).
Done().
Done().
Build()
Arrays
tool := tools.NewTool("process_data").
Input().
WithArray("items", "List of items to process", true).
Of("object", "Individual item").
WithString("id", "Item ID", true).
WithString("name", "Item name", true).
Done().
Done().
Build()
func textTool(params map[string]any) (tools.ToolResultText, error) {
return tools.NewToolResultText("Hello, World!"), nil
}
func structuredTool(params map[string]any) (tools.ToolResultStructured, error) {
return tools.ToolResultStru
... [View full README on GitHub](https://github.com/makarski/mcp-robot#readme)