About oatpp-mcp
oatpp-mcp is a Model Context Protocol implementation for the Oat++ C++ web framework. It targets developers who want to expose Oat++ applications as MCP servers. It can generate tools automatically from ApiController definitions.
Key features
- 01Automatic tool generation from ApiController
- 02STDIO transport support
- 03HTTP SSE transport support
- 04Prompts, resources and tools as server features
Use cases
- 01Letting an LLM query an Oat++-based API through tools
- 02Adding MCP server capabilities to a C++ project
MCP support
This is an MCP server implementation that exposes prompts, resources and tools to MCP clients.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEoatpp-mcp
Anthropic’s Model Context Protocol implementation for Oat++
Read more:
Supported features
Autogenerated tools for API
:tada: oatpp-mcp can automatically generate tools from ApiController so that you can query your API with LLM. :tada:
- Detailed tutorial
- Example project example-crud (branch
add_mcp_server)
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: make sure to redirect oatpp logging to a different stream - ex.: to file by providing 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());
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.