wujingwe/sidewalk-mcp-server
If you are the rightful owner of sidewalk-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
This document provides a structured summary of a Model Communication Protocol (MCP) server implemented in Kotlin, showcasing its features, tools, resources, and usage across different platforms.
MCP Kotlin Server Sample
A sample implementation of an MCP (Model Communication Protocol) server in Kotlin that demonstrates different server configurations and transport methods for both JVM and WASM targets.
Features
- Multiple server operation modes:
- Standard I/O server (JVM only)
- SSE (Server-Sent Events) server with plain configuration (JVM, WASM)
- SSE server using Ktor plugin (JVM, WASM)
- Standard I/O server (JVM only)
- Multiplatform support
- Built-in capabilities for:
- Prompts management
- Resources handling
- Tools integration
Getting Started
Running the Server
You can run the server on the JVM or using Kotlin/WASM on Node.js.
JVM:
To run the server on the JVM (defaults to SSE mode with Ktor plugin on port 3001):
./gradlew runJvm
WASM:
To run the server using Kotlin/WASM on Node.js (defaults to SSE mode with Ktor plugin on port 3001):
./gradlew wasmJsNodeDevelopmentRun
Connecting to the Server
For servers on JVM or WASM:
- Start the server
- Use the MCP inspector to connect to
http://localhost:<port>/sse
Server Capabilities
- Prompts: Supports prompt management with list change notifications
- Resources: Includes subscription support and list change notifications
- Tools: Supports tool management with list change notifications
Implementation Details
The server is implemented using:
- Ktor for HTTP server functionality
- Kotlin coroutines for asynchronous operations
- SSE for real-time communication
- Standard I/O for command-line interface
- Common Kotlin code shared between JVM and WASM targets