MCP.so
Sign In

Overview

What is McpServer?

McpServer is an MCP server implementation built on the mcp-go library. It currently provides weather query functionality using the QWeather API and includes enhancements for automatically populating field descriptions to improve AI interpretation of results.

How to use McpServer?

McpServer can be run in two transport modes: stdio (inter-process communication) or sse (HTTP streaming for remote access). To use it, you need to build the executable with go build -o ./bin/weather ./cmd/weather, then configure it in an MCP client with the appropriate command, arguments, and environment variables. For SSE mode, run go run ./cmd/weather/main.go --configDir=<path> -t=sse and provide the SSE URL in the client config.

Key features of McpServer

  • Weather data queries powered by QWeather API
  • Custom UnmarshalJSON methods that attach struct tag descriptions to response fields
  • Supports both stdio and sse transport protocols
  • Written in Go using the mcp-go library
  • Configuration via YAML file and private key

Use cases of McpServer

  • Integrate real-time weather information into AI agent conversations
  • Allow remote AI clients to query weather data via SSE transport
  • Use as a local MCP tool for weather-related prompts in development
  • Extend with additional MCP tools by following the same pattern

FAQ from McpServer

What runtime does McpServer require?

McpServer is written in Go and requires Go build tools to compile the executable. Environment variables such as GOPATH and GOMODCACHE need to be set.

What data sources does McpServer use?

Weather data is provided by the QWeather API (和风天气). A configuration file and private key must be placed in a config directory.

How does McpServer handle response descriptions?

McpServer overrides the default JSON unmarshalling to copy struct tag comments into the description fields, ensuring AI models can correctly interpret the returned data (at the cost of increased token usage).

What transport options are available?

Two transports: stdio for local process communication and sse for remote HTTP streaming access. The transport is selected via the -t or --transport flag.

Can McpServer be run remotely?

Yes, by using the sse transport and running the server as an HTTP endpoint, remote MCP clients can connect via the SSE URL.

Tags

More from Other