Ferramenta gratuita

De OpenAPI a servidor MCP em C#

Você já tem uma especificação OpenAPI. Veja como ela vira um servidor MCP funcional em C#, e quais partes um conversor não faz por você.

SDK oficial modelcontextprotocol/csharp-sdk
Instalação
dotnet add package ModelContextProtocol
Uma ferramenta MCP funcional em C#
[McpServerToolType]
public static class OrderTools
{
    [McpServerTool, Description("Look up one order by its id and return its current status.")]
    public static async Task<string> GetOrder(
        IOrderService orders,
        [Description("The order id to look up")] string orderId)
        => await orders.FetchAsync(orderId);
}

Gerado, rodando e ainda invisível.

Converter uma especificação te dá um servidor. Não te dá ninguém que queira usá-lo. O MCP Showcase transforma o mesmo endpoint em um playground ao vivo com documentação legível para cada ferramenta.

Como funciona

link
Converta a especificação

O conversor de OpenAPI transforma cada operação em uma definição de ferramenta MCP, no seu navegador e sem enviar a sua especificação.

play_circle
Ligue tudo em C#

Pegue as definições de ferramentas geradas e implemente-as contra a sua API com o SDK de C#, no formato mostrado acima.

checklist
Reduza a lista

Uma especificação convertida te dá uma ferramenta por operação, o que quase sempre é demais. Fique com as de que um agente precisa.

Da especificação para C#

A metade mecânica é mesmo mecânica: cada operação OpenAPI vira uma ferramenta MCP, a summary vira a descrição, e os parâmetros de caminho, query e corpo achatam em um único esquema de entrada. O conversor de OpenAPI faz essa parte no seu navegador, sem enviar a sua especificação.

O que sobra tem a forma de C#: implementar essas ferramentas contra a sua API com modelcontextprotocol/csharp-sdk (dotnet add package ModelContextProtocol), no formato mostrado acima.

Atributos mais injeção de dependências

As ferramentas são marcadas com atributos e resolvidas pelo contêiner de injeção padrão do .NET, então uma ferramenta pode receber serviços injetados como parâmetros ao lado dos argumentos vindos do modelo. É conveniente e também é o jeito mais fácil de expor sem querer um serviço interno pela assinatura de uma ferramenta: confira o que é de fato alcançável a partir de cada uma.

O que nenhum conversor faz por você

  • A autenticação. O código gerado chama a sua API sem credenciais. Ligar o cabeçalho, o token ou o fluxo OAuth é com você.
  • Reescrever as descrições. Uma summary de OpenAPI é escrita para quem lê documentação. Uma descrição de ferramenta MCP é lida por um modelo que decide o que chamar. São trabalhos diferentes, e as summaries normalmente precisam de reescrita depois de convertidas.
  • Escolher o que expor. Um conversor te entrega uma ferramenta por operação. Para a maioria das APIs isso é uma ordem de grandeza demais.
  • Expandir corpos com $ref. Resolvê-los exige a sua seção components, então eles chegam como objeto genérico.

Por que o número de ferramentas importa tanto

As definições de ferramentas são enviadas ao modelo a cada requisição, não uma vez por sessão. Oitenta operações são oitenta descrições e oitenta esquemas na janela de contexto de cada turno — pagos continuamente, e mensuravelmente piores na escolha do que uma lista curta. A calculadora de tokens mostra quanto uma dada lista custa; o linter de esquemas mostra se as descrições sobreviveram à conversão em estado utilizável.

Ferramentas e guias relacionados

Gerado não é a mesma coisa que utilizável

Um servidor convertido prova que o mapeamento funcionou. Para um cliente em potencial ele não diz nada: essa pessoa não lê C# e não vai configurar um cliente para descobrir. O MCP Showcase transforma o mesmo endpoint em um playground ao vivo com documentação por ferramenta que qualquer um pode experimentar no navegador.

Perguntas frequentes

O mapeamento é mecânico: cada operação vira uma ferramenta, a summary vira a descrição e os parâmetros viram um único esquema de entrada plano. O que não é mecânico: autenticação, tratamento de erros e decidir quais operações merecem estar na lista de ferramentas.

A autenticação, que você adiciona. Os corpos de requisição atrás de um $ref, cuja resolução exige a sua seção components. E o julgamento: um conversor te dá alegremente oitenta ferramentas, o que é pior do que oito.

Porque as definições de ferramentas são enviadas ao modelo a cada requisição. Oitenta operações são oitenta descrições e oitenta esquemas no contexto de cada turno, pagos continuamente, e ao mesmo tempo deixam o modelo mensuravelmente pior para escolher entre elas.

Sim, e vale saber disso antes de converter. Uma summary de OpenAPI é escrita para quem lê documentação; uma descrição de ferramenta MCP é lida por um modelo que decide o que chamar. São trabalhos diferentes, e as summaries costumam precisar de reescrita depois.

Publique e passe a URL pelo MCP Inspector para confirmar o handshake e a lista de ferramentas, e depois pelo linter de esquemas para ver se as descrições sobreviveram bem o bastante para um modelo escolher direito.

Mais ferramentas MCP gratuitas