MCP SSE Sample logo

MCP SSE Sample

by iuill

This is a sample MCP server using SSE (Server-Sent Events). It demonstrates an SSE implementation of the MCP protocol.

View on GitHub

Last updated: N/A

MCP SSE Sample

SSEを使用したMCPサーバーのサンプルです。 MCPプロトコルのSSE実装を示すサンプルプロジェクトです。

オリジナルは以下コードです。

  • https://github.com/modelcontextprotocol/servers/tree/main/src/everything

Components

Tools

  1. echo

    • Simple tool to echo back input messages
    • Input:
      • message (string): Message to echo back
    • Returns: Text content with echoed message
  2. add

    • Adds two numbers together
    • Inputs:
      • a (number): First number
      • b (number): Second number
    • Returns: Text result of the addition
  3. longRunningOperation

    • Demonstrates progress notifications for long operations
    • Inputs:
      • duration (number, default: 10): Duration in seconds
      • steps (number, default: 5): Number of progress steps
    • Returns: Completion message with duration and steps
    • Sends progress notifications during execution
  4. sampleLLM

    • Demonstrates LLM sampling capability using MCP sampling feature
    • Inputs:
      • prompt (string): The prompt to send to the LLM
      • maxTokens (number, default: 100): Maximum tokens to generate
    • Returns: Generated LLM response
  5. getTinyImage

    • Returns a small test image
    • No inputs required
    • Returns: Base64 encoded PNG image data
  6. printEnv

    • Prints all environment variables
    • Useful for debugging MCP server configuration
    • No inputs required
    • Returns: JSON string of all environment variables
  7. annotatedMessage

    • Demonstrates how annotations can be used to provide metadata about content
    • Inputs:
      • messageType (enum: "error" | "success" | "debug"): Type of message to demonstrate different annotation patterns
      • includeImage (boolean, default: false): Whether to include an example image
    • Returns: Content with varying annotations:
      • Error messages: High priority (1.0), visible to both user and assistant
      • Success messages: Medium priority (0.7), user-focused
      • Debug messages: Low priority (0.3), assistant-focused
      • Optional image: Medium priority (0.5), user-focused
    • Example annotations:
      {
        "priority": 1.0,
        "audience": ["user", "assistant"]
      }
      

Logging

The server sends random-leveled log messages every 15 seconds, e.g.:

{
  "method": "notifications/message",
  "params": {
	"level": "info",
	"data": "Info-level message"
  }
}

使用方法

ローカルでの実行

# インストール
npm install

# ビルド
npm run build

# 実行(STDIOモード)
npm run start

# 実行(SSEモード)
npm run start:sse

Claude Desktopでの使用

claude_desktop_config.jsonに以下を追加してください:

{
  "mcpServers": {
    "sse-sample": {
      "command": "npx",
      "args": [
        "-y",
        "mcp_sse_sample"
      ]
    }
  }
}