bitterpanda63/aikido-mcp-server
3.2
If you are the rightful owner of aikido-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Aikido MCP Server integrates with the Aikido Security API, providing access to Zen firewall apps and Teams management.
Tools
5
Resources
0
Prompts
0
Aikido MCP Server (Unofficial)
Unofficial MCP server for integrating with Aikido Security API, providing access to Zen firewall apps and Teams management.
Installation
git clone https://github.com/bitterpanda63/aikido-mcp-server.git
cd aikido-mcp-server
npm install
npm run build
Configuration
- Copy the example environment file:
cp .env.example .env
- Edit
.env
and add your Aikido Client ID & Token:
AIKIDO_CLIENT_SECRET=
AIKIDO_CLIENT_ID=
Get your credentials from the Aikido Settings
Usage
With Claude Desktop
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json
on macOS):
{
"mcpServers": {
"aikido": {
"command": "node",
"args": ["/path/to/aikido-mcp-server/dist/index.js"],
"env": {
"AIKIDO_API_TOKEN": "your-api-token-here"
}
}
}
}
Direct Usage
node dist/index.js
Architecture
Adding New Endpoints
To add a new endpoint, create one file in the appropriate endpoints/
directory:
// src/client/zen/endpoints/my-new-endpoint.ts
import { Tool } from '@modelcontextprotocol/sdk/types.js';
import { BaseAikidoClient } from '../../base-client.js';
// 1. Types
export interface MyRequest { /* ... */ }
export interface MyResponse { /* ... */ }
// 2. API Client
export class MyEndpointClient extends BaseAikidoClient {
async execute(data: MyRequest): Promise<MyResponse> {
return this.request({ method: 'POST', url: '/my-endpoint', data });
}
}
// 3. MCP Tool Definition
export const myEndpointTool: Tool = {
name: 'my_endpoint',
description: 'Description here',
inputSchema: { /* ... */ },
};
// 4. MCP Handler
export async function handleMyEndpoint(args, client) {
const result = await client.execute(args);
return { content: [{ type: 'text', text: JSON.stringify(result) }] };
}
Then add it to the module's index.ts
- no changes needed to server.ts
!