oatpp-mcp

Oatpp-mcp implements Anthropic's Model Context Protocol for Oat++, enabling LLM integration with your Oat++ API through autogenerated tools. It supports STDIO and HTTP SSE transports, along with Prompts, Resources, and Tools.

43
1

oatpp-mcp

Anthropic’s Model Context Protocol implementation for Oat++.

Read more:

Supported features

Autogenerated tools for API

:tada: oatpp-mcp automatically generates tools from ApiController to query your API with LLMs. :tada:

Transport

  • STDIO
  • HTTP SSE

Server features

Build And Install

Pre Requirements

  • Install the main oatpp module

Install module

  • Clone this repository.
  • In the root of the repository run:
    mkdir build && cd build
    cmake ..
    make install

Examples

Find working example in tests /test/oatpp-mcp/app/ServerTest.cpp

Serve via STDIO

Note: Redirect oatpp logging to a different stream (e.g., to a file) by providing a custom Logger.

  /* Create MCP server */
  oatpp::mcp::Server server;

  /* Add prompts */
  server.addPrompt(std::make_shared<prompts::CodeReview>());

  /* Add resource */
  server.addResource(std::make_shared<resource::File>());
  
  /* Add tools */
  server.addTool(std::make_shared<tools::Logger>());

  /* Run server */
  server.stdioListen(); 

Serve via SSE

  /* Create MCP server */
  oatpp::mcp::Server server;

  /* Add prompts */
  server.addPrompt(std::make_shared<prompts::CodeReview>());

  /* Add resource */
  server.addResource(std::make_shared<resource::File>());
  
  /* Add tools */
  server.addTool(std::make_shared<tools::Logger>());

  /* Add SSE controller to your HTTP server router */
  router->addController(server.getSseController());

Repository

OA
oatpp

oatpp/oatpp-mcp

Created

December 9, 2024

Updated

March 28, 2025

Language

C++

Category

AI