-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathopenapi_provider.cpp
More file actions
38 lines (32 loc) · 1.34 KB
/
openapi_provider.cpp
File metadata and controls
38 lines (32 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include "fastmcpp/providers/openapi_provider.hpp"
#include "fastmcpp/app.hpp"
#include <iostream>
#include <memory>
int main()
{
using namespace fastmcpp;
Json spec = Json::object();
spec["openapi"] = "3.0.3";
spec["info"] = Json{{"title", "Example API"}, {"version", "1.0.0"}};
spec["servers"] = Json::array({Json{{"url", "http://127.0.0.1:8080"}}});
spec["paths"] = Json::object();
spec["paths"]["/status"]["get"] = Json{
{"operationId", "getStatus"},
{"responses",
Json{{"200", Json{{"description", "ok"},
{"content",
Json{{"application/json",
Json{{"schema",
Json{{"type", "object"},
{"properties",
Json{{"status", Json{{"type", "string"}}}}}}}}}}}}}}},
};
FastMCP app("openapi-provider-example", "1.0.0");
auto provider = std::make_shared<providers::OpenAPIProvider>(spec);
app.add_provider(provider);
std::cout << "OpenAPI tools discovered:\n";
for (const auto& tool : app.list_all_tools_info())
std::cout << " - " << tool.name << "\n";
std::cout << "Run a compatible HTTP server at http://127.0.0.1:8080 to invoke these tools.\n";
return 0;
}