AXM MCP Server — Runtime execution for the axm-protocols ecosystem
Project description
axm-mcp — MCP server for the axm-protocols ecosystem
Features
- 🔌 Auto-discovery — Finds all
axm.toolsentry points from installed packages - 🛠️ MCP bridge — Exposes discovered tools as Model Context Protocol callables
- ✅ Verify — One-shot project quality check: audit + init check + AST enrichment
- 🌐 Web fetch — Anti-bot web page fetching via Scrapling (basic / dynamic / stealth)
- 📋 List tools — Built-in meta-tool to list all available tools and descriptions
- 📂 Tool catalog resource —
axm://toolsMCP resource for passive tool discovery
Installation
uv add axm-mcp
With all AXM tools:
uv add "axm-mcp[all]"
Quick Start
# Start in stdio mode (default — backward-compatible)
axm-mcp
# Start as Streamable HTTP server (default port 9427)
axm-mcp serve
# Check server status
axm-mcp status
# Stop the running server
axm-mcp stop
All installed AXM tools are immediately available to any MCP client.
Server Modes
axm-mcp supports two transport modes:
| Mode | Command | Client config | Use case |
|---|---|---|---|
| stdio | axm-mcp |
{"command": "uv", "args": ["run", "axm-mcp"]} |
One process per conversation (legacy) |
| HTTP | axm-mcp serve |
{"type": "url", "url": "http://localhost:9427/mcp"} |
Single shared server, persistent cache |
stdio forks a new process per conversation. Simple, but duplicates memory and has no shared state.
HTTP (Streamable HTTP) runs one persistent server that all conversations share — AST cache, protocol sessions, and tool state are preserved across calls. This is the recommended mode.
.mcp.json configuration
stdio (Claude Code):
{
"mcpServers": {
"axm-mcp": {
"command": "uv",
"args": ["run", "axm-mcp"]
}
}
}
HTTP (Claude Code):
{
"mcpServers": {
"axm-mcp": {
"type": "url",
"url": "http://localhost:9427/mcp"
}
}
}
Place this in ~/.claude/.mcp.json (global) or .mcp.json at the project root.
CLI Commands
| Command | Description |
|---|---|
axm-mcp |
Start in stdio mode (backward-compatible default) |
axm-mcp serve [--host HOST] [--port PORT] |
Start Streamable HTTP server (default port 9427) |
axm-mcp status [--host HOST] [--port PORT] |
Check whether the HTTP server is running |
axm-mcp stop |
Send SIGTERM to the running HTTP server |
axm-mcp install [--port PORT] [--binary PATH] |
Install axm-mcp as a launchd service (macOS) |
axm-mcp uninstall |
Remove the launchd service |
The HTTP transport exposes a /health endpoint returning {"status": "ok", "tools_count": N}.
Port can also be set via the AXM_MCP_PORT environment variable.
Service Management (macOS)
axm-mcp can run as a persistent background service managed by launchd:
# Install and start the service
axm-mcp install
# Remove the service
axm-mcp uninstall
install locates the axm-mcp binary, generates a launchd plist, and loads it via launchctl.
uninstall unloads the service and removes the plist file.
MCP Tools
| Tool | Package | Description |
|---|---|---|
list_tools |
built-in | List all available tools |
verify |
built-in | One-shot audit + init check + AST enrichment |
web_fetch |
built-in | Fetch web pages with anti-bot bypass (basic / dynamic / stealth) |
axm://tools |
built-in | MCP resource — passive tool catalog (via read_resource) |
audit |
axm-audit |
Code quality audit (lint, types, complexity, security) |
init_check |
axm-init |
39 governance checks against AXM gold standard |
init_scaffold |
axm-init |
Scaffold a new Python project |
bib_search |
axm-bib |
Search academic papers by title |
bib_doi |
axm-bib |
Resolve DOI → BibTeX |
bib_pdf |
axm-bib |
Download paper PDF |
bib_extract |
axm-bib |
Extract text from PDF |
Development
This package is part of the axm-nexus workspace.
git clone https://github.com/axm-protocols/axm-nexus.git
cd axm-nexus
uv sync --all-groups
uv run --package axm-mcp --directory packages/axm-mcp pytest -x -q
License
Apache-2.0 — © 2026 Gabriel Jarry
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file axm_mcp-0.3.0.tar.gz.
File metadata
- Download URL: axm_mcp-0.3.0.tar.gz
- Upload date:
- Size: 55.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
93863022e7416d7a7fbef2832ca3871d5023c275c27108a8bc6d211cc0c07148
|
|
| MD5 |
b0ba662f6f791f0a2a51c09f728d6cab
|
|
| BLAKE2b-256 |
ac8d4d9c3fea70a4795224febba9528b952bd1c9f42fa784c8b87f38b31b256a
|
Provenance
The following attestation bundles were made for axm_mcp-0.3.0.tar.gz:
Publisher:
publish.yml on axm-protocols/axm-nexus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
axm_mcp-0.3.0.tar.gz -
Subject digest:
93863022e7416d7a7fbef2832ca3871d5023c275c27108a8bc6d211cc0c07148 - Sigstore transparency entry: 1280059541
- Sigstore integration time:
-
Permalink:
axm-protocols/axm-nexus@e3bbcc9782edb7b2844f6a9321247a6380b2a8a6 -
Branch / Tag:
refs/tags/mcp/v0.3.0 - Owner: https://github.com/axm-protocols
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e3bbcc9782edb7b2844f6a9321247a6380b2a8a6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file axm_mcp-0.3.0-py3-none-any.whl.
File metadata
- Download URL: axm_mcp-0.3.0-py3-none-any.whl
- Upload date:
- Size: 24.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
85f88532952ee00ab8599347825110d03b154dc5a13b58b8325b7c7dcc0ee989
|
|
| MD5 |
70e238d36981f057b7af64cc987bd721
|
|
| BLAKE2b-256 |
f493e11690264e092ffc119e11a6b8a1fff1af0de3d67b266547261178b67fec
|
Provenance
The following attestation bundles were made for axm_mcp-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on axm-protocols/axm-nexus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
axm_mcp-0.3.0-py3-none-any.whl -
Subject digest:
85f88532952ee00ab8599347825110d03b154dc5a13b58b8325b7c7dcc0ee989 - Sigstore transparency entry: 1280059545
- Sigstore integration time:
-
Permalink:
axm-protocols/axm-nexus@e3bbcc9782edb7b2844f6a9321247a6380b2a8a6 -
Branch / Tag:
refs/tags/mcp/v0.3.0 - Owner: https://github.com/axm-protocols
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e3bbcc9782edb7b2844f6a9321247a6380b2a8a6 -
Trigger Event:
push
-
Statement type: