mcp-server-axiom-js

by ThetaBird
Verified
# MCP Server for Axiom A JavaScript port of the [official Axiom MCP server](https://github.com/axiomhq/mcp-server-axiom) that enables AI agents to query data using Axiom Processing Language (APL). <a href="https://glama.ai/mcp/servers/8hxxw8uenu"> <img width="380" height="200" src="https://glama.ai/mcp/servers/8hxxw8uenu/badge" /> </a> This implementation provides the same functionality as the original Go version but packaged as an npm module for easier integration with Node.js environments. ## Installation & Usage ### MCP Configuration You can run this MCP server directly using npx. Add the following configuration to your MCP configuration file: ```json { "axiom": { "command": "npx", "args": ["-y", "mcp-server-axiom"], "env": { "AXIOM_TOKEN": "<AXIOM_TOKEN_HERE>", "AXIOM_URL": "https://api.axiom.co", "AXIOM_ORG_ID": "<AXIOM_ORG_ID_HERE>" } } } ``` ### Local Development & Testing #### Installation ```bash npm install -g mcp-server-axiom ``` #### Environment Variables The server can be configured using environment variables: - `AXIOM_TOKEN` (required): Your Axiom API token - `AXIOM_ORG_ID` (required): Your Axiom organization ID - `AXIOM_URL` (optional): Custom Axiom API URL (defaults to https://api.axiom.co) - `AXIOM_QUERY_RATE` (optional): Queries per second limit (default: 1) - `AXIOM_QUERY_BURST` (optional): Query burst capacity (default: 1) - `AXIOM_DATASETS_RATE` (optional): Dataset list operations per second (default: 1) - `AXIOM_DATASETS_BURST` (optional): Dataset list burst capacity (default: 1) - `PORT` (optional): Server port (default: 3000) #### Running the Server Locally 1. Using environment variables: ```bash export AXIOM_TOKEN=your_token mcp-server-axiom ``` 2. Using a config file: ```bash mcp-server-axiom config.json ``` Example config.json: ```json { "token": "your_token", "url": "https://custom.axiom.co", "orgId": "your_org_id", "queryRate": 2, "queryBurst": 5, "datasetsRate": 1, "datasetsBurst": 2 } ``` ## API Endpoints - `GET /`: Get server implementation info - `GET /tools`: List available tools - `POST /tools/:name/call`: Call a specific tool - Available tools: - `queryApl`: Execute APL queries - `listDatasets`: List available datasets ### Example Tool Calls 1. Query APL: ```bash curl -X POST http://localhost:3000/tools/queryApl/call \ -H "Content-Type: application/json" \ -d '{ "arguments": { "query": "['logs'] | where ['severity'] == \"error\" | limit 10" } }' ``` 2. List Datasets: ```bash curl -X POST http://localhost:3000/tools/listDatasets/call \ -H "Content-Type: application/json" \ -d '{ "arguments": {} }' ``` ## License MIT