README.md•5.65 kB
# MCP API Client (Beta)
A **Model Context Protocol (MCP) server** that **call APIs** using **YAML config** files.
This server allows you connect to APIs using simple a config YAML file! 🤩
Ideal for: **`#lazy-programmers`** **`#nocode`** **`#lowcode`** **`#ai-integrators`** **`#automation`** **`#api-gateway`** **`#data-pipelines`** **`#rapid-prototyping`** **`#llm-integration`** **`#makers`**
If you don't have **advance APIs call skills** using a programming language or you just want **a fast way to connect your AI model with an API** using MCP, you will LOVE 💖 this MCP.
## 🎬▶️ Example Video😉✨
[Check this video using included Test Server and Claude](https://www.berrycast.com/conversations/df10bb4d-a8f3-5331-aaf9-c923644959ae)
## Support with your Click!
Make a reaction and give me a motivational comment on [mcp.so repository](https://mcp.so/server/mcp-api-client/molavec?tab=comments)

... and yes! A donation to help cover my coffee and rent would be amazing! 🙏🙏
[](https://ko-fi.com/G2G1FR7OO)
### Features
- Configure multiple API endpoints using YAML
- Automatic MCP tool creation from YAML config file.
- Automatic MCP fetch API creation from YAML config file.
- Supports all HTTP methods (GET, POST, PATCH, PUT, DELETE) [✨PARTIAL✨]
- [✅] GET API without parameters
- [✅] GET API with query parameters
- [✅] GET API with path parameters
- [✅] POST API
- [✅] PATCH API with path parameters
- [✅] PUT API with
- [✅] DELETE API with path parameters
-
- Set API Headers [✨WORKING✨]
- Set API Token [✨ 🫣🔴COMMING SOON✨]
- Environment variable interpolation for sensitive data [✨ 🫣🔴COMMING SOON✨]
- Automatic PATH parameter detection from URL (like `/users/{id}`)[✨WORKING✨]
- Automatic QUERY parameter detection from URL (like `/users?page={page}&limit={limit}`) [✨WORKING✨]
- **Reduce Prompt tokens used** setting up certain APIs for your project
- ...and best of all, SAVE COUNTLESS HOURS FOR HUMANITY 👏😎😉 by connecting your LLM to any API.
### Use cases
- **Connect to N8N, Make.com or Zapier webhook**: Make actions in other platforms connecting to automations or integration tools.
- **AI Model Integration**: Quickly connect LLMs or other AI models to external APIs for data retrieval, enrichment, or action execution without custom code.
- **Rapid Prototyping**: Build and test API workflows using YAML configuration, ideal for hackathons, demos, or proof-of-concept projects.
- **No-Code/Low-Code Automation**: Enable non-developers to define and call APIs securely using simple YAML files and environment variables.
- **Data Pipelines**: Orchestrate API calls as part of ETL or data processing pipelines, leveraging MCP tools for modularity and reuse.
- **API Gateway**: Expose multiple backend APIs through a unified MCP interface, simplifying integration for downstream consumers.
- **Secure API Access**: Manage secrets and tokens via environment variables, keeping sensitive data out of source code and YAML files.
<!-- ## How to use
```bash
npx -y mcp-api-client path-to-api-config-file.yaml
``` -->
## Getting started
1. Get a copy of default `api.yaml`.
```bash
npx -y mcp-api-client --init
```
2. You can test **default api.yaml** with express test server [test/server.js](https://github.com/molavec/mcp-api-client/blob/main/src/test/mock-api.ts). Execute in other terminal.
```bash
npx -y mcp-api-client --test-server
```
3. Add MCP to your agent config file.
* Example for `Claude Client` settings file:
```json
"mcp": {
"servers": {
"mcp-api-client": {
"command": "npx",
"args": [
"-y",
"mcp-api-client",
"path-to-api.yaml"
]
},
}
}
```
* Example for `Visual Studio Code` settings file:
```json
"mcp": {
"servers": {
"mcp-api-client": {
"command": "npx",
"args": [
"-y",
"mcp-api-client",
"path-to-api.yaml"
]
},
}
}
```
4. Just Ask!

## YAML Configuration File
Each API YAML file can include global metadata with MCP information:
```yaml
metadata: General information about the API set
```
and a list of API endpoint definitions:
```yaml
apis: A list of API endpoint definitions. Each endpoint should have
```
### Example API YAML config file example
```yaml
metadata:
name: API Examples
version: 1.0.0
description: This file contains examples of various API endpoints for testing purposes.
apis:
- name: getUser
url: https://api.example.com/users/{id}
method: GET
content:
headers:
Accept: application/json
- name: createUser
url: https://api.example.com/users
method: POST
api-token: ${API_TOKEN}
content:
headers:
Content-Type: application/json
body:
name: string
email: string
...
```
See [public/apis.yaml](https://github.com/molavec/mcp-api-client/blob/main/public/apis.yaml) for a complete example with metadata and all HTTP methods and parameter types.
## API_TOKEN from .env (Not tested yet!)
Create a `.env` file for your API tokens:
```
API_TOKEN=your_api_token_here
```
## Bugs and Requests
https://github.com/molavec/mcp-api-client/issues
## Contributing
1. Fork the repository
2. Create your feature branch
3. Commit your changes
4. Push to the branch
5. Create a new Pull Request
## License
MIT