
Construindo um Servidor MCP com Common Lisp
Curadoria, tradução e análise: Redação Triplo Hub.
Recentemente, eu queria aprender sobre MCP (Modelo de Protocolo de Contexto). Como alguém cujo idioma de programação padrão é Common Lisp, decidi naturalmente construir um servidor MCP usando Lisp.
Graças aos criadores do 40ants-mcp, a biblioteca fornece um padrão e uma estrutura de código que eu realmente gosto. No entanto, eu lutei significativamente com a instalação e o início. O que deveria ter levado minutos acabou levando dias.
Estou compartilhando minha experiência aqui para que outros que desejam construir servidores MCP em Common Lisp possam começar em minutos, não em dias como eu fiz.
Pré-requisitos
Antes de começar, certifique-se de ter o seguinte instalado:
- SBCL - Um compilador de Common Lisp de alto desempenho
- Roswell - Um gerenciador de implementação de Common Lisp e executor de scripts
- Quicklisp - O gerenciador de pacotes de fato para Common Lisp
- Ultralisp - Uma distribuição de bibliotecas de Common Lisp orientada pela comunidade
Instalando Ultralisp
No SBCL com Quicklisp, você pode habilitar o Ultralisp fazendo:
(ql-dist:install-dist "http://dist.ultralisp.org/" :prompt nil)
(Como instalar SBCL e Quicklisp está no apêndice.)
O Problema: Carregando 40ants-mcp
Este é o problema que me custou dias: quando você tenta carregar 40ants-mcp com:
(ql:quickload :40ants-mcp)
Você pode encontrar erros. A solução é simples, mas não óbvia—carregue jsonrpc primeiro:
(ql:quickload :jsonrpc)
(ql:quickload :40ants-mcp)
Essa dependência não é resolvida automaticamente, o que foi a fonte da minha frustração.
Criando Seu Servidor MCP
Aqui está um exemplo mínimo do meu pacote mcp-exper:
(in-package :mcp-exper)
(openrpc-server:define-api (mi-tools :title "mi-tools"))
(40ants-mcp/tools:define-tool (mi-tools add) (a b)
(:summary "apenas adicione")
(:param a integer "a")
(:param b integer "b")
(:result text-content)
(make-instance 'text-content :text (format nil "~a" (+ a b))))
(defun start-server ()
(40ants-mcp/server/definition:start-server mi-tools))
Pontos-chave:
- Use
openrpc-server:define-apipara definir sua API - Use
40ants-mcp/tools:define-toolpara definir ferramentas - Retorne instâncias de
text-contentpara resultados de texto (MCP requer tipos de conteúdo específicos)
Executando o Servidor
Crie um script Roswell (mi-mcp-server.ros):
#!/bin/sh
#|-*- mode:lisp -*-|#
exec ros -Q -- $0 "$@"
|#
(progn
(ros:ensure-asdf)
#+quicklisp(ql:quickload '(:mcp-exper) :silent t))
(defun main (&rest argv)
(declare (ignorable argv))
(mcp-exper:start-server))
Teste Rápido
Execute diretamente com Roswell:
ros mi-mcp-server.ros
Instalação em Produção
Construa e instale como um executável:
ros build mi-mcp-server.ros
install -m 0755 mi-mcp-server $HOME/.local/bin/
Certifique-se de que $HOME/.local/bin esteja no seu PATH.
Integrando com Opencode
Para habilitar seu servidor MCP no opencode, adicione isso ao ~/.config/opencode/opencode.json:
{
"mcp": {
"mi-tools": {
"type": "local",
"command": ["mi-mcp-server"],
"enabled": true
O desenvolvimento de servidores MCP pode ser relevante para empresas que buscam integrar protocolos de contexto em suas aplicações. A experiência compartilhada pode ajudar profissionais a evitar erros comuns e acelerar o processo de implementação. Isso pode facilitar a adoção de novas tecnologias em ambientes corporativos.
Noticias relacionadas

Quão errado está um modelo sobre uma empresa quando não há registro para verificar?
O artigo analisa a eficácia de um modelo de IA ao responder perguntas sobre empresas sem acesso a registros. Os resultados mostram que a falta de registros leva a respostas erradas e inseguras, destacando a importância da proveniência das informações.

Pare de deixar sua IA projetar arquiteturas AWS caras e inseguras
O artigo discute os problemas de usar LLMs para projetar arquiteturas na AWS, destacando a falta de responsabilidade e a tendência à complexidade desnecessária, resultando em custos elevados e insegurança.

MCP Tornou Ferramentas Descobertas, Mas Não Seguras
O MCP facilitou a descoberta de ferramentas para agentes de IA, mas não garante segurança. A integração é eficiente, mas a autorização e a proteção contra conteúdos hostis ainda são desafios a serem superados.
Gostou do conteudo?
Receba toda semana as principais novidades sobre WebMCP.