APLCart MCP Server
Um servidor MCP que fornece capacidades de busca semântica para dados do APLCart.
Documentação
Servidor MCP APLCart
Um servidor Model Context Protocol (MCP) que expõe a coleção de expressões idiomáticas APLCart com recursos de busca semântica. APLCart é uma coleção pesquisável de expressões APL com descrições.
Recursos
- Encontre expressões APL por correspondência exata de sintaxe
- Pesquise em sintaxe, descrições e palavras-chave
- Obtenha palavras-chave para expressões APL específicas
- Consultas em linguagem natural usando embeddings da OpenAI
Instalação
Pré-requisitos
- Python 3.11 ou superior
- Chave da API da OpenAI (para funcionalidade de busca semântica)
Usando uv
# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh
# Clone the repository
git clone <repository-url>
cd ac-mcp
# Install dependencies
uv sync
Configuração
Converter Dados do APLCart
Primeiro, baixe e converta os dados TSV do APLCart para o formato JSONL:
# Using uv
uv run python aplcart2json.py
# Or with activated venv
python aplcart2json.py
# Optional: Generate SQLite database for faster searches
python aplcart2json.py --db
Gerar Embeddings (Opcional; para Busca Semântica)
Para habilitar a funcionalidade de busca semântica:
# 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.py
Isso cria:
aplcart.index- arquivo de índice FAISS contendo embeddingsaplcart_metadata.pkl- Metadados para resultados de busca semântica
Uso
Executando o Servidor MCP
# Basic usage
uv run python aplcart_mcp_semantic.py
# With SQLite database backend
APLCART_USE_DB=1 uv run python aplcart_mcp_semantic.py
Usando com Claude Code
O projeto inclui um arquivo .mcp.json.template que configura automaticamente o servidor MCP. Salve-o como .mcp.json, atualize-o com seus dados e execute /mcp no Claude Code para ver os servidores disponíveis.
Você também pode adicionar o servidor manualmente:
claude mcp add aplcart "uv run python aplcart_mcp_semantic.py"
Usando com Claude Desktop
Adicione isto ao seu arquivo de configuração do Claude Desktop:
- 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}"
}
}
}
}
Em seguida, reinicie o Claude Desktop para carregar o servidor MCP.
Ferramentas MCP Disponíveis
-
lookup-syntax- Correspondência exata na sintaxe APLExample: lookup-syntax "⍳10" -
search- Busca por substring em sintaxe, descrição e palavras-chaveExample: search "matrix" limit=10 -
keywords-for- Obter palavras-chave para uma sintaxe específicaExample: keywords-for "∘.≤⍨∘⍳" -
semantic-search- Busca em linguagem natural usando embeddingsExample: semantic-search "how to split a string on a separator"
Ferramenta de Busca Independente
Você também pode usar a funcionalidade de busca semântica diretamente:
# 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 10
Comandos do modo interativo:
- Digite sua consulta e pressione Enter para buscar
- Digite
quit,exitouqpara sair (ou Ctrl+D ou Ctrl+C)
Configuração
Variáveis de Ambiente
OPENAI_API_KEY- Necessária para a funcionalidade de busca semânticaAPLCART_USE_DB- Defina como1,trueouyespara usar o backend de banco de dados SQLite
Estrutura de Arquivos
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 dependencies
Sobre o APLCart
APLCart é uma coleção pesquisável de expressões idiomáticas e expressões APL mantida em https://aplcart.info/
Licença
Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.
Observação: Os dados do APLCart em si estão sujeitos aos seus próprios termos de licenciamento.