Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Generated by https://smithery.ai. See: https://smithery.ai/docs/config#dockerfile
# Use an official Node.js runtime as a parent image
FROM node:14-alpine

# Set the working directory in the container
WORKDIR /app

# Copy the current directory contents into the container at /app
COPY . .

# Install any needed packages
RUN npm install

# Make the CLI script executable
RUN chmod +x bin/cli.js

# Make port 3000 available to the world outside this container
EXPOSE 3000

# Define environment variables
ENV AXIOM_TOKEN=<your-axiom-token>
ENV AXIOM_ORG_ID=<your-axiom-org-id>

# Run the application
ENTRYPOINT ["node", "bin/cli.js"]
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,21 @@
# MCP Server for Axiom

[![smithery badge](https://smithery.ai/badge/@ThetaBird/mcp-server-axiom-js)](https://smithery.ai/server/@ThetaBird/mcp-server-axiom-js)

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).

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

### Installing via Smithery

To install Axiom MCP Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@ThetaBird/mcp-server-axiom-js):

```bash
npx -y @smithery/cli install @ThetaBird/mcp-server-axiom-js --client claude
```

### MCP Configuration

You can run this MCP server directly using npx. Add the following configuration to your MCP configuration file:
Expand Down
45 changes: 45 additions & 0 deletions smithery.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Smithery configuration file: https://smithery.ai/docs/config#smitheryyaml

startCommand:
type: stdio
configSchema:
# JSON Schema defining the configuration options for the MCP.
type: object
required:
- axiomToken
- axiomOrgId
properties:
axiomToken:
type: string
description: Your Axiom API token.
axiomOrgId:
type: string
description: Your Axiom organization ID.
axiomUrl:
type: string
default: https://api.axiom.co
description: The Axiom API URL.
axiomQueryRate:
type: number
default: 1
description: Queries per second limit.
axiomQueryBurst:
type: number
default: 1
description: Query burst capacity.
axiomDatasetsRate:
type: number
default: 1
description: Dataset list operations per second.
axiomDatasetsBurst:
type: number
default: 1
description: Dataset list burst capacity.
port:
type: number
default: 3000
description: Server port.
commandFunction:
# A function that produces the CLI command to start the MCP on stdio.
|-
(config) => ({command:'node', args:['bin/cli.js'], env: {AXIOM_TOKEN: config.axiomToken, AXIOM_ORG_ID: config.axiomOrgId, AXIOM_URL: config.axiomUrl || 'https://api.axiom.co', AXIOM_QUERY_RATE: config.axiomQueryRate?.toString() || '1', AXIOM_QUERY_BURST: config.axiomQueryBurst?.toString() || '1', AXIOM_DATASETS_RATE: config.axiomDatasetsRate?.toString() || '1', AXIOM_DATASETS_BURST: config.axiomDatasetsBurst?.toString() || '1', PORT: config.port?.toString() || '3000'}})