MCP server for interacting with AMTB resources / tools
To use it with Claude Desktop, add to your claude_desktop_config.json:
{
"mcpServers": {
"amtb": {
"command": "python",
"args": ["{your_path}/amtb-mcp/run_mcp.py"]
}
}
}
Quickstart
Requirements
- Python 3.13+ (recommended)
- pip
- Optional: LibreOffice (
soffice) or pywin32 for.doc→.docxconversion when using doc conversion tools.
Setup (Windows)
- python -m venv .venv
- ..venv\Scripts\Activate.ps1 # PowerShell or ..venv\Scripts\activate.bat # cmd
Install
- pip install -e .
Run locally
-
Start the MCP server (stdio transport):
python run_mcp.py
This exposes the implemented tools on stdio for local testing or consumption by an MCP client (e.g., Claude Desktop).
-
Alternatively you can run the main module directly:
python main.py
Testing
-
Run unit tests:
python -m unittest discover -v
or, if you prefer pytest:
pytest
Using tools directly (for development)
-
Call wrappers from Python for quick checks, e.g.:
python -c "from fetch_tool import fetch_amtb_menu; print(fetch_amtb_menu(write_files=False))"
python -c "from main import get_amtb_categories; print(get_amtb_categories())"
Notes
fetch_amtb_menuwritesmenu.jsonand per-category files underout_dir(default:amtb). Usewrite_files=Falsefor a dry run.- Download and conversion tools are opt-in and may require additional system packages and time.
- For development, place new tool modules under
amtb-mcp/and register them inmain.py(or import modules that callmcp.tool()on module import).
Contributing
- Add a tool module, include tests, and submit a PR. Keep operations idempotent and return JSON-serializable Pydantic models.
License
- See LICENSE in repository root.