@mcp-apps/api-tools-mcp-server
Version:
MCP server for interacting with APIs and web services
64 lines (57 loc) • 2.14 kB
text/typescript
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { apiCallTool } from "./tools/api-call";
import { fetchOpenApiSchemaTool } from "./tools/fetch-openapi-schema";
import { getOpenApiEndpointsTool } from "./tools/get-openapi-endpoints";
import { getOpenApiOperationsTool } from "./tools/get-openapi-operations";
import { getOpenApiOperationDetailsTool } from "./tools/get-openapi-operation-details";
async function main() {
try {
const server = new McpServer({
name: process.env.MCP_SERVER_NAME || "api-tools-mcp-server",
description: "API Tools MCP Server for API integration",
version: process.env.MCP_SERVER_VERSION || "1.0.0",
});
// Register the API call tool
server.tool(
apiCallTool.name,
apiCallTool.description,
apiCallTool.parameters,
apiCallTool.handler
); // Register OpenAPI tools
server.tool(
fetchOpenApiSchemaTool.name,
fetchOpenApiSchemaTool.description,
fetchOpenApiSchemaTool.parameters,
fetchOpenApiSchemaTool.handler
);
server.tool(
getOpenApiEndpointsTool.name,
getOpenApiEndpointsTool.description,
getOpenApiEndpointsTool.parameters,
getOpenApiEndpointsTool.handler
);
server.tool(
getOpenApiOperationsTool.name,
getOpenApiOperationsTool.description,
getOpenApiOperationsTool.parameters,
getOpenApiOperationsTool.handler
);
server.tool(
getOpenApiOperationDetailsTool.name,
getOpenApiOperationDetailsTool.description,
getOpenApiOperationDetailsTool.parameters,
getOpenApiOperationDetailsTool.handler
);
const transport = new StdioServerTransport();
await server.connect(transport);
console.error("API Tools MCP Server running on stdio");
}
catch (error: any) {
console.error("Error starting MCP server:", error.message);
console.error("Stack trace:", error.stack);
process.exit(1);
}
}
main();