MCP ExplorerExplorer

Mcp Cpp

@Neumann-Labson a year ago
30 GPL-3.0
FreeCommunity
AI Systems
A C++ SDK for the Model Context Protocol (MCP). The SDK will provide a framework for creating MCP servers and clients in C++.

Overview

What is Mcp Cpp

mcp-cpp is a C++ SDK designed for the Model Context Protocol (MCP). It provides a framework for developing MCP servers and clients using modern C++17 best practices.

Use cases

Use cases for mcp-cpp include developing communication frameworks for applications that require real-time data exchange, creating tools that leverage MCP capabilities, and building client-server architectures in C++.

How to use

To use mcp-cpp, clone the repository and build the library using CMake. After building, you can run the included examples, such as the echo server and client, to understand the basic functionality.

Key features

Key features include JSON-RPC 2.0 based messaging, support for multiple transport mechanisms (STDIO, HTTP/SSE planned), thread-safe design, memory-safe implementation using RAII and smart pointers, and comprehensive error handling.

Where to use

undefined

Content

mcp-cpp

A C++ SDK for the Model Context Protocol (MCP). The SDK provides a framework for creating MCP servers and clients in C++ following modern C++17 best practices.

Features

  • JSON-RPC 2.0 based messaging
  • Multiple transport mechanisms (STDIO, HTTP/SSE planned)
  • Support for MCP capabilities: Tools, Resources, and Prompts
  • Thread-safe design
  • Memory-safe implementation using RAII and smart pointers
  • Comprehensive error handling

Building the Library

The library uses CMake for building:

# Configure the build
cmake -B build

# Build the library
cmake --build build

# Run tests
cd build && ctest

Examples

Echo Server/Client

The repository includes a simple echo server and client example that demonstrates the basic usage of the library.

To run the echo server:

./build/examples/simple_server/echo_server

To run the echo client in a different terminal:

./build/examples/simple_client/echo_client

The client sends a test request and notification on startup and then allows you to enter messages that will be echoed back by the server.

Development Status

The project is currently in development with the following components implemented:

  • Core types and JSON serialization
  • Error handling utilities
  • Transport interface
  • STDIO transport implementation
  • Logging utilities

Upcoming features:

  • Session management
  • HTTP/SSE transport
  • Server implementation
  • Client implementation

License

See the LICENSE file for details.

Tools

No tools

Comments

Recommend MCP Servers

View All MCP Servers