MCP LLM Integration Server

Um servidor MCP para integrar Modelos de Linguagem de Grande Escala locais com clientes compatíveis com MCP.

Documentação

MCP LLM Integration Server

Este é um servidor Model Context Protocol (MCP) que permite integrar capacidades de LLM local com clientes compatíveis com MCP.

Recursos

  • llm_predict: Processa prompts de texto através de um LLM local
  • echo: Retorna o texto de volta para fins de teste

Configuração

  1. Instale as dependências:

    source .venv/bin/activate
    uv pip install mcp
    
  2. Teste o servidor:

    python -c "
    import asyncio
    from main import server, list_tools, call_tool
    
    async def test():
        tools = await list_tools()
        print(f'Available tools: {[t.name for t in tools]}')
        result = await call_tool('echo', {'text': 'Hello!'})
        print(f'Result: {result[0].text}')
    
    asyncio.run(test())
    "
    

Integração com Clientes LLM

Para Claude Desktop

Adicione isto à sua configuração do Claude Desktop (~/.config/claude-desktop/claude_desktop_config.json):

{
  "mcpServers": {
    "llm-integration": {
      "command": "/home/tandoori/Desktop/dev/mcp-server/.venv/bin/python",
      "args": ["/home/tandoori/Desktop/dev/mcp-server/main.py"]
    }
  }
}

Para Continue.dev

Adicione isto à sua configuração do Continue (~/.continue/config.json):

{
  "mcpServers": [
    {
      "name": "llm-integration",
      "command": "/home/tandoori/Desktop/dev/mcp-server/.venv/bin/python",
      "args": ["/home/tandoori/Desktop/dev/mcp-server/main.py"]
    }
  ]
}

Para Cline

Adicione isto às suas configurações MCP do Cline:

{
  "llm-integration": {
    "command": "/home/tandoori/Desktop/dev/mcp-server/.venv/bin/python",
    "args": ["/home/tandoori/Desktop/dev/mcp-server/main.py"]
  }
}

Personalizando a Integração LLM

Para integrar seu próprio LLM local, modifique a função perform_llm_inference em main.py:

async def perform_llm_inference(prompt: str, max_tokens: int = 100) -> str:
    Example: Using transformers
    from transformers import pipeline
    generator = pipeline('text-generation', model='your-model')
    result = generator(prompt, max_length=max_tokens)
    return result[0]['generated_text']
    
    Example: Using llama.cpp python bindings
    from llama_cpp import Llama
    llm = Llama(model_path="path/to/your/model.gguf")
    output = llm(prompt, max_tokens=max_tokens)
    return output['choices'][0]['text']
    
    Current placeholder implementation
    return f"Processed prompt: '{prompt}' (max_tokens: {max_tokens})"

Testes

Execute o servidor diretamente para testar a comunicação JSON-RPC:

source .venv/bin/activate
python main.py

Em seguida, envie solicitações JSON-RPC via stdin:

{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": {"name": "test-client", "version": "1.0.0"}}}