MCP内核服务

McpJames_plusplus提供'james'内核,一个基于C++/CMake的可执行文件,用于在模型上下文协议(MCP)生态系统中运行,简化MCP服务器的管理。

  • by Nokaji
  • C++
  • 云端部署
  • 更新于
在 GitHub 查看 Nokaji/McpJames_plusplus

使用说明

McpJames_plusplus — 内核“james”

McpJames_plusplus 提供了“james”内核:这是一个小型的 C++/CMake 可执行文件,旨在在模型上下文协议(MCP)生态系统中运行。

旨在通过Supergateway及其他网关解决方案简化MCP服务器的管理。

基于

用途

概述

  • 内核“james”:此仓库中的一个C++可执行文件(使用CMake构建)。
  • 目的:作为后端内核,供网关(例如Supergateway)根据MCP(管理控制平面)规范启动并与之交互。

贡献

欢迎贡献(问题报告、拉取请求)。对于较大的更改,请先打开一个问题报告来讨论处理方法。

资源

使用示例(SSE)

	std::cout << "=== Test function started ===" << std::endl;

	mcp::type::SseConfig sseConfig;
	sseConfig.url = "http://localhost:8080";
	sseConfig.sseEndpoint = "/sse";
	sseConfig.messageEndpoint = "/message";

	std::cout << "Creating MCP client with:" << std::endl;
	std::cout << "  URL: " << sseConfig.url << std::endl;
	std::cout << "  SSE Endpoint: " << sseConfig.sseEndpoint << std::endl;
	std::cout << "  Message Endpoint: " << sseConfig.messageEndpoint << std::endl;

	mcp::mcp websearch(std::make_unique<mcp::SseTransport>(sseConfig));

	std::cout << "Starting MCP transport..." << std::endl;
	websearch.start();

	std::cout << "Waiting for SSE connection to establish..." << std::endl;

	std::cout << "\n--- Calling initialize ---" << std::endl;
	nlohmann::json initParams = nlohmann::json::object();
	initParams["protocolVersion"] = "2024-11-05";
	initParams["capabilities"] = nlohmann::json::object();
	initParams["clientInfo"] = {
		{"name", "Kernel-JAMES"},
		{"version", "1.0.0"}
	};
	websearch.call("initialize", initParams);

	std::cout << "Waiting for initialize response..." << std::endl;

	std::cout << "\n--- Calling tools/list ---" << std::endl;
	websearch.call("tools/list", nlohmann::json::object());

	std::cout << "Waiting for tools/list response..." << std::endl;

	std::cout << "\nStopping MCP transport..." << std::endl;
	websearch.stop();

	std::cout << "=== Test function completed ===" << std::endl;