AppMcpServer

danielfrsoares/AppMcpServer

3.2

If you are the rightful owner of AppMcpServer and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

AppMcpServer is a Model Context Protocol (MCP) server developed in .NET 9.0 with ASP.NET Core, designed to facilitate code analysis through the DeepSource API.

Tools
1
Resources
0
Prompts
0

AppMcpServer - MCP Server com Integração DeepSource

Servidor MCP (Model Context Protocol) desenvolvido em .NET 9.0 com ASP.NET Core, que fornece ferramentas para interação via protocolo MCP, incluindo análise de código via DeepSource API.

📋 Funcionalidades

Ferramenta Disponível

DeepSourceTool - Análise de Qualidade de Código
  • GetDeepSourceRunAnalysis: Recupera resultados de análise de código do DeepSource
    • Parâmetro: runUid (string) - ID único da execução do DeepSource
    • Retorna: Informações detalhadas sobre issues, ocorrências e resumo da análise
    • Inclui: metadados do run, resumo de ocorrências, detalhes de cada issue detectada

🚀 Como Usar

Pré-requisitos

  • .NET 9.0 SDK
  • Token de API do DeepSource

Instalação

# Clone o repositório
git clone <repository-url>
cd AppMcpServer

# Restaurar dependências
dotnet restore

# Compilar o projeto
dotnet build

Executando o Servidor

dotnet run

O servidor estará disponível em:

  • Endpoint MCP: http://localhost:5000/mcp
  • Página inicial: http://localhost:5000/

🔑 Configuração da API DeepSource

Configuração no Cliente MCP

Para usar a ferramenta DeepSource, você precisa configurar o token de API no cliente MCP. Adicione a seguinte configuração:

{
  "mcpServers": {
    "AppMcpServer": {
      "command": "dotnet",
      "args": ["run", "--project", "C:/temp/MCP-QualityCode/AppMcpServer"],
      "env": {
        "TOKEN_API_KEY": "dsp_sua_chave_api_aqui"
      }
    }
  }
}

Exemplo de Configuração Completa (Cursor/Claude Desktop)

Para configurar no Cursor ou Claude Desktop, edite o arquivo de configuração MCP:

Windows: %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json

macOS: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

{
  "mcpServers": {
    "AppMcpServer": {
      "command": "dotnet",
      "args": ["run", "--project", "C:/temp/MCP-QualityCode/AppMcpServer"],
      "env": {
        "TOKEN_API_KEY": "dsp_2f3baab052ba59e37037a17a2d33ae6d9be4"
      }
    }
  }
}

📖 Exemplos de Uso

Usando a Ferramenta DeepSource

Uma vez configurado, você pode usar a ferramenta através do MCP:

// Exemplo de chamada via MCP
{
  "tool": "GetDeepSourceRunAnalysis",
  "arguments": {
    "runUid": "e6d75b5a-4bc8-41fa-ba3c-bec7ea396e4b"
  }
}

Resposta Esperada

{
  "success": true,
  "data": {
    "runInfo": {
      "id": "123",
      "createdAt": "2025-10-22T10:00:00Z",
      "finishedAt": "2025-10-22T10:05:00Z",
      "branchName": "main",
      "baseOid": "abc123"
    },
    "summary": {
      "totalOccurrencesFound": 5,
      "occurrencesIntroduced": 2
    },
    "occurrences": [
      {
        "title": "Issue title",
        "path": "src/file.cs",
        "lineRange": "10-15",
        "beginLine": 10,
        "endLine": 15,
        "issue": {
          "shortcode": "CS-001",
          "title": "Code smell detected",
          "description": "Detailed description..."
        }
      }
    ]
  }
}

🏗️ Arquitetura

Estrutura do Projeto

AppMcpServer/
├── Program.cs                 # Configuração principal do servidor
├── DeepSourceTool.cs          # Ferramenta de análise DeepSource
├── DeepSourceModels.cs        # Modelos de dados para API DeepSource
├── AppMcpServer.csproj        # Arquivo de projeto .NET
├── README.md                  # Documentação principal
├── TESTING.md                 # Guia de testes
├── IMPLEMENTATION_SUMMARY.md  # Resumo técnico da implementação
├── mcp-config-example.json    # Exemplo de configuração MCP
└── .gitignore                 # Exclusões do Git

Tecnologias Utilizadas

  • .NET 9.0: Framework principal
  • ASP.NET Core: Servidor web
  • ModelContextProtocol.AspNetCore: Implementação do protocolo MCP
  • HttpClient: Comunicação HTTP com APIs externas
  • System.Text.Json: Serialização/deserialização JSON

🔧 Funcionalidades Técnicas

DeepSourceTool - Características

  • Validação de entrada: Verifica se o runUid foi fornecido
  • Tratamento de erros: Captura e reporta erros de rede, parsing e outros
  • Logging: Registra operações para debugging
  • Timeout configurável: 30 segundos por padrão
  • Formatação de resposta: Dados estruturados e legíveis
  • Configuração via variável de ambiente: Token de API configurável

GraphQL Query

A ferramenta executa a seguinte query GraphQL no DeepSource:

query {
  run(runUid:"<runUid>") {
    id
    createdAt
    branchName
    baseOid
    finishedAt
    checks {
      edges {
        node {
          occurrences {
            edges {                        
              node {              
                title              
                path
                beginLine
                endLine
                issue {
                  shortcode
                  title
                  description                                
                }
              }
            }
          }
          summary {
            occurrencesIntroduced
          }
        }
      }
    }
  }
}

🐛 Tratamento de Erros

A ferramenta DeepSource implementa tratamento robusto de erros:

  1. Validação de entrada: Verifica se o runUid é válido
  2. Token não configurado: Retorna erro claro se o token estiver ausente
  3. Erros de rede: Captura e reporta problemas de conectividade
  4. Erros de parsing: Trata erros de deserialização JSON
  5. Run não encontrado: Informa quando o runUid não existe
  6. Erros HTTP: Reporta status codes e detalhes de erro da API

📝 Logs

O servidor registra as seguintes informações:

  • Inicialização do servidor
  • Requisições à API DeepSource
  • Erros e exceções
  • Sucesso nas operações

🤝 Contribuindo

  1. Fork o projeto
  2. Crie uma branch para sua feature (git checkout -b feature/AmazingFeature)
  3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
  4. Push para a branch (git push origin feature/AmazingFeature)
  5. Abra um Pull Request

📄 Licença

Este projeto está sob a licença MIT.

🆘 Suporte

Em caso de problemas:

  1. Verifique se o token da API está configurado corretamente
  2. Confirme que o servidor está rodando na porta 5000
  3. Verifique os logs do console para mensagens de erro
  4. Certifique-se de que o runUid está correto

🔄 Versão

v1.1.0 - Adicionada integração com DeepSource API