ac-mcp
An MCP server for APLCart
Documentation
APLCart MCP Server
A Model Context Protocol (MCP) server that exposes the APLCart idiom collection with semantic search capabilities. APLCart is a searchable collection of APL expressions with descriptions.
Features
- Find APL expressions by exact syntax match
- Search across syntax, descriptions, and keywords
- Get keywords for specific APL expressions
- Natural language queries using OpenAI embeddings
Installation
Prerequisites
- Python 3.11 or higher
- OpenAI API key (for semantic search functionality)
Using uv
# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh
# Clone the repository
git clone
cd ac-mcp
# Install dependencies
uv syncSetup
Convert APLCart Data
First, fetch and convert the APLCart TSV data to JSONL format:
# Using uv
uv run python aplcart2json.py
# Or with activated venv
python aplcart2json.py
# Optional: Generate SQLite database for faster searches
python aplcart2json.py --dbGenerate Embeddings (Optional; for Semantic Search)
To enable semantic search functionality:
# Set your OpenAI API key
export OPENAI_API_KEY='your-api-key-here'
# Generate embeddings
uv run python generate_embeddings.py
# Or with activated venv
python generate_embeddings.pyThis creates:
- `aplcart.index` - FAISS index file containing embeddings
- `aplcart_metadata.pkl` - Metadata for semantic search results
Usage
Running the MCP Server
# Basic usage
uv run python aplcart_mcp_semantic.py
# With SQLite database backend
APLCART_USE_DB=1 uv run python aplcart_mcp_semantic.pyUsing with Claude Code
The project includes a `.mcp.json.template` file that automatically configures the MCP server. Save that as `.mcp.json`, update it with your details, and run `/mcp` in Claude Code to see available servers.
You can also manually add the server:
claude mcp add aplcart "uv run python aplcart_mcp_semantic.py"Using with Claude Desktop
Add this to your Claude Desktop configuration file:
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
- Linux: `~/.config/claude/claude_desktop_config.json`
{
"mcpServers": {
"aplcart": {
"command": "uv",
"args": [
"run",
"--directory",
"YOUR/PATH/HERE/ac-mcp",
"python",
"aplcart_mcp_semantic.py"
],
"env": {
"APLCART_USE_DB": "1",
"OPENAI_API_KEY": "${OPENAI_API_KEY}"
}
}
}
}Then restart Claude Desktop to load the MCP server.
Available MCP Tools
- `lookup-syntax` - Exact match on APL syntax
Example: lookup-syntax "⍳10"- `search` - Substring search across syntax, description, and keywords
Example: search "matrix" limit=10- `keywords-for` - Get keywords for a specific syntax
Example: keywords-for "∘.≤⍨∘⍳"- `semantic-search` - Natural language search using embeddings
Example: semantic-search "how to split a string on a separator"Standalone Search Tool
You can also use the semantic search functionality directly:
# Interactive mode
uv run python search_embeddings.py
# Single query
uv run python search_embeddings.py "find the largest number"
# JSON output
uv run python search_embeddings.py "reverse an array" --json
# More results
uv run python search_embeddings.py "matrix operations" -k 10Interactive mode commands:
- Type your query and press Enter to search
- Type `quit`, `exit`, or `q` to exit (or Ctrl+D or Ctrl+C)
Configuration
Environment Variables
- `OPENAI_API_KEY` - Required for semantic search functionality
- `APLCART_USE_DB` - Set to `1`, `true`, or `yes` to use SQLite database backend
File Structure
ac-mcp/
├── aplcart.jsonl # Converted APLCart data (run aplcart2json.py to generate)
├── aplcart.db # SQLite database (optional)
├── aplcart.index # FAISS embeddings index (run generate_embeddings.py to generate)
├── aplcart_metadata.pkl # Metadata for semantic search (run generate_embeddings.py to generate)
├── aplcart2json.py # Converter script
├── generate_embeddings.py # Embedding generator
├── aplcart_mcp_semantic.py # MCP server with semantic search
├── search_embeddings.py # Standalone search tool
└── pyproject.toml # Project dependenciesAbout APLCart
APLCart is a searchable collection of APL idioms and expressions maintained at https://aplcart.info/
License
This project is licensed under the MIT License - see the LICENSE file for details.
Note: The APLCart data itself is subject to its own licensing terms.
Frequently asked questions
What is ac-mcp?
ac-mcp is An MCP server for APLCart
How do I install ac-mcp?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is ac-mcp open source?
Yes — it is hosted on GitHub at https://github.com/xpqz/ac-mcp.
Related MCP tools
Control Gmail, Google Calendar, Docs, Sheets, Slides, Chat, Forms, Tasks, Search & Drive with AI - Comprehensive Google Workspace MCP Server & CLI Tool
MCP server and Claude plugin for Postgres skills and documentation. Helps AI coding tools generate better PostgreSQL code.
Your entire engineering context, deeply understood
Cognee is the open-source AI memory platform for agents. Give your AI agents persistent long-term memory across sessions with a self-hosted knowledge graph engine.
An LLM agent that conducts deep research (local and web) on any given topic and generates a long report with citations. Built for the Model Context Protocol to
Automate browser based workflows with AI
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP