UNPKG

@mcp-apps/api-tools-mcp-server

Version:

MCP server for interacting with APIs and web services

234 lines (160 loc) 7.21 kB
# API Tools MCP Server An [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) server that provides tools for API integration and web service interaction. ## Fe### Getting OpenAPI Endpoints ```text List all the endpoints available in the Petstore API at https://petstore.swagger.io/v2/swagger.json ``` ### Using OpenAPI Auto-Discovery ```text Get the OpenAPI schema for the Petstore API at https://petstore.swagger.io ``` This example uses auto-discovery to find and retrieve the schema without needing the exact path.s - **API Integration**: Tools for making API calls to various services with authentication - **OpenAPI Support**: Parse and inspect OpenAPI specifications - **OpenAPI Auto-Discovery**: Automatically locate OpenAPI schemas even when only given a base API URL - **Authentication**: Multiple authentication methods including Bearer token, Basic auth, and Interactive authentication - **Request Generation**: Generate API requests based on specifications - **Schema Inspection**: Fetch OpenAPI schemas, list endpoints, and explore API operations - **Error Handling**: Comprehensive error handling with retries for transient failures ## Setup Instructions ### Prerequisites - VS Code (latest version recommended) - Node.js 18.0 or higher - npm 8.0 or higher ### Local Development Setup 1. Clone the repository: ```bash git clone https://github.com/your-repo/api-tools-mcp-server.git cd api-tools-mcp-server ``` 2. Install dependencies: ```bash npm install ``` 3. Build the project: ```bash npm run build ``` 4. Run the server: ```bash npm start ``` 5. For development with auto-reload: ```bash npm run watch ``` 6. To run tests: ```bash npm run test:api npm run test:openapi ``` ## Using with GitHub Copilot in VS Code ### Installation with GitHub Copilot UI 1. Ensure you have the GitHub Copilot extension installed in VS Code - If not, open VS Code Extensions view (Ctrl+Shift+X) - Search for "GitHub Copilot" - Click "Install" 2. Open VS Code and the GitHub Copilot Chat panel - Use the keyboard shortcut (Ctrl+Shift+I) or - Click on the Copilot Chat icon in the activity bar 3. Select "Agent Mode" in the Copilot Chat panel. 4. Click on the "Tools" icon and select **Add More Tools**. 5. Click **Add MCP Server** tool. 6. Choose **Command (stdio)** as the tool type. 7. Type the following command to install and run the API Tools MCP server: ```bash npx @mcp-apps/api-tools-mcp-server ``` 8. Once set up, Copilot will be able to assist with API integration and calls. ## Available Tools ### API Integration Tools - `call_api` - Makes authenticated API calls to a specified endpoint - Parameters: - `endpoint`: The base URL of the API endpoint - `method`: HTTP method (GET, POST, PUT, PATCH, DELETE) - `path` (optional): Path to append to the endpoint URL - `queryParams` (optional): Query parameters to include - `headers` (optional): Headers to include - `body` (optional): Body data to include in the request - `authType`: Authentication method ('bearer', 'basic', 'interactive', 'none') - `authConfig` (optional): Authentication configuration - `call_api_advanced` - Extended version with more authentication options - Additional parameters: - `authType`: Includes 'msal' and 'azure-identity' options - `timeout`: Request timeout in milliseconds - `retryCount`: Number of retries for transient errors - `fetch_openapi_schema` - Fetches and parses an OpenAPI schema from a URL - Parameters: - `schemaUrl`: URL where the OpenAPI schema is published or API base URL (auto-discovery enabled) - `authType` (optional): Authentication method if the schema requires auth - `authConfig` (optional): Authentication configuration object **Auto-Discovery Feature**: If the exact URL doesn't contain a valid OpenAPI schema, the tool will automatically try common schema endpoints (like "/swagger.json", "/v2/swagger.json", "/openapi.json", "/api-docs.json") to locate the schema. This enables you to just provide the base URL of an API and let the tool find the schema for you. See [OpenAPI Auto-Discovery Documentation](docs/openapi-autodiscovery.md) for details. - `get_openapi_endpoints` - Lists all available endpoints from an OpenAPI schema - Parameters: - `schemaUrl`: URL where the OpenAPI schema is published - `authType` (optional): Authentication method if the schema requires auth - `authConfig` (optional): Authentication configuration object - `get_openapi_operations` - Gets detailed information about operations for a specific endpoint - Parameters: - `schemaUrl`: URL where the OpenAPI schema is published - `path`: The specific API path to get operations for (e.g., "/pets") - `authType` (optional): Authentication method if the schema requires auth - `authConfig` (optional): Authentication configuration object - `get_openapi_operation_details` - Gets comprehensive details about a specific operation (by operationId) - Parameters: - `schemaUrl`: URL where the OpenAPI schema is published - `operationId`: The operation ID to retrieve details for (e.g., "getPetById") - `authType` (optional): Authentication method if the schema requires auth - `authConfig` (optional): Authentication configuration object ## Example Usage Here are examples of using the API Tools MCP Server with GitHub Copilot: ### Making a Simple API Call ``` Call the Weather API at https://api.weather.com/forecast with my API key abc123 ``` ### Making an Authenticated API Call ``` Make a POST request to https://api.example.com/data with bearer token authentication ``` ### Working with OpenAPI Specifications ```text Get the available operations from the Petstore API specification at https://petstore.swagger.io/v2/swagger.json ``` ### Fetching an OpenAPI Schema ```text Fetch the complete OpenAPI schema from https://petstore.swagger.io/v2/swagger.json ``` ### Listing OpenAPI Endpoints ```text List all the endpoints available in the Petstore API at https://petstore.swagger.io/v2/swagger.json ``` ### Getting Endpoint Operations ```text Show me all the operations available for the /pet endpoint in the Petstore API ``` ### Getting Operation Details by ID ```text Get details for the getPetById operation in the Petstore API and show me a sample request ``` ### Generating an API Call Template ```text Generate a template for the 'addPet' operation from the Petstore API ``` ### Advanced Authentication ``` Call the Microsoft Graph API with MSAL authentication to retrieve my profile information ``` ### Interactive Browser Authentication ``` Log me in using device code authentication to call the Microsoft Graph API ``` ## Security Considerations - This server handles API keys and authentication tokens with appropriate security measures - All sensitive data is properly handled and not logged or exposed - Implements standard security practices for API communication - Authentication token refresh is managed securely - Consider additional security measures depending on your specific API integration requirements ## License ISC