Charity MCP Server

Acesse dados de instituições de caridade e organizações sem fins lucrativos do banco de dados do IRS via CharityAPI.org.

Documentação

Charity MCP Server

Um servidor abrangente do Model Context Protocol (MCP) que fornece aos assistentes de IA acesso de nível empresarial a dados de organizações de caridade e sem fins lucrativos do banco de dados do IRS. Este servidor completo permite que ferramentas de IA consultem informações de caridade, verifiquem o status de dedução fiscal, pesquisem organizações sem fins lucrativos e utilizem modelos de prompt avançados para fluxos de trabalho guiados de pesquisa de caridade.

🎯 Status do Projeto: Funcionalidade Completa

Conquista: Implementação 100% completa excedendo todos os requisitos originais

  • ✅ Todas as 4 ferramentas principais do MCP com tratamento abrangente de erros
  • ✅ Sistema de prompts completo com 14 modelos especializados
  • ✅ Arquitetura de nível empresarial com segurança total de tipos
  • ✅ Pronto para produção com testes e documentação abrangentes
  • ✅ Recursos avançados que proporcionam experiência superior ao usuário

Recursos

🔍 Charity Lookup

  • Consulte informações detalhadas sobre qualquer caridade usando seu EIN (ID fiscal)
  • Obtenha dados abrangentes do IRS, incluindo nome oficial, localização, status fiscal e códigos de classificação
  • Valide o formato do EIN e as regras de negócio

🔎 Charity Search

  • Pesquise caridades por nome da organização, cidade ou estado
  • Suporte para paginação e filtragem
  • Encontre organizações quando você não tiver o EIN exato

✅ Public Charity Verification

  • Verifique rapidamente se uma organização se qualifica como caridade pública dedutível de impostos
  • Verifique o status 501(c)(3) para planejamento de doações
  • Verificação instantânea do status de dedução fiscal

📝 Advanced Prompt System (14 Templates)

  • 8 Prompts de Verificação: Fluxos de trabalho completos de verificação de caridade com etapas guiadas
  • 6 Prompts de Referência Rápida: Assistência de consulta simplificada e melhores práticas
  • Geração Dinâmica: Prompts baseados em modelos com substituição de parâmetros
  • Experiência do Usuário: Fluxos de trabalho pré-construídos para cenários comuns de pesquisa de caridade
  • Orientação para Assistente de IA: Melhores práticas e árvores de decisão para uso ideal das ferramentas

🛡️ Enterprise Features

  • Limitação de Taxa: Limites de taxa de API configuráveis para prevenir abuso
  • Validação de Entrada: Validação abrangente com verificações de segurança
  • Tratamento de Erros: Tratamento robusto de erros com mensagens amigáveis
  • Registro de Logs: Registro detalhado para monitoramento e depuração
  • Segurança de Tipos: Implementação completa em TypeScript com esquemas Zod

Início Rápido

Pré-requisitos

  • Node.js 18+
  • npm ou yarn
  • Conta CharityAPI e chave de API

Instalação

  1. Clone o repositório

    git clone <repository-url>
    cd charity-mcp-server
    
  2. Instale as dependências

    npm install
    
  3. Configure as variáveis de ambiente

    cp .env.example .env
    # Edit .env with your API key and configuration
    
  4. Compile o projeto

    npm run build
    
  5. Inicie o servidor

    npm start
    

Configuração

Variáveis de Ambiente

Crie um arquivo .env com base em .env.example:

# CharityAPI Configuration
CHARITY_API_BASE_URL=https://api.charityapi.org
CHARITY_API_KEY=your_api_key_here
CHARITY_API_TIMEOUT=10000
CHARITY_API_MAX_RETRIES=3
CHARITY_API_RETRY_DELAY=1000

# Server Configuration  
MAX_CONCURRENT_REQUESTS=10
REQUEST_TIMEOUT_MS=30000
ENABLE_CACHING=false
LOG_LEVEL=INFO

# Rate Limiting
RATE_LIMIT_REQUESTS_PER_MINUTE=100
RATE_LIMIT_WINDOW_MS=60000

Configuração da Chave de API

  1. Cadastre-se em uma conta CharityAPI
  2. Gere uma chave de API no seu painel
  3. Adicione a chave de API ao seu arquivo .env

Ferramentas Disponíveis

1. Charity Lookup (charity_lookup)

Consulte informações detalhadas sobre uma caridade específica usando seu EIN.

Entrada:

  • ein (string, obrigatório): EIN no formato "XX-XXXXXXX" ou "XXXXXXXXX"

Exemplo:

{
  "ein": "13-1837418"
}

Retorna:

  • Detalhes completos da organização
  • Status e códigos de dedução fiscal
  • Classificação da organização e códigos de atividade
  • Status atual do IRS e informações de decisão

2. Charity Search (charity_search)

Pesquise caridades por nome, localização ou outros critérios.

Entrada:

  • query (string, opcional): Nome da organização ou palavras-chave
  • city (string, opcional): Filtrar por nome da cidade
  • state (string, opcional): Filtrar por estado (código de 2 letras)
  • limit (número, opcional): Resultados por página (1-100, padrão 25)
  • offset (número, opcional): Pular resultados para paginação (padrão 0)

Exemplo:

{
  "query": "American Red Cross",
  "state": "CA",
  "limit": 10
}

Retorna:

  • Lista de organizações correspondentes
  • Informações de paginação
  • Detalhes básicos (nome, EIN, localização, dedutibilidade)

3. Public Charity Check (public_charity_check)

Verifique se uma organização se qualifica como caridade pública dedutível de impostos.

Entrada:

  • ein (string, obrigatório): EIN no formato "XX-XXXXXXX" ou "XXXXXXXXX"

Exemplo:

{
  "ein": "13-1837418"
}

Retorna:

  • Status de caridade pública (sim/não)
  • Elegibilidade para doações dedutíveis de impostos
  • Confirmação do EIN

Prompts Disponíveis

O servidor fornece prompts integrados para ajudar assistentes de IA a realizar a verificação de caridade de forma eficaz:

Prompts de Verificação

  1. Charity Verification Guide (charity_verification_guide)

    • Guia completo para realizar a verificação de legitimidade de caridade
    • Personalizável por tipo de organização (name_only, ein_based, suspicious, etc.)
  2. Basic Legitimacy Workflow (basic_legitimacy_workflow)

    • Fluxos de trabalho passo a passo para diferentes cenários de verificação
    • Parâmetros: verification_type, organization_name, ein, location
  3. Red Flag Detection (red_flag_detection)

    • Orientação para detectar e lidar com status problemáticos de caridade
    • Lida com organizações revogadas, condicionais e suspensas
  4. Verification Response Templates (verification_response_templates)

    • Formatos de resposta padronizados para diferentes resultados de verificação
    • Modelos para casos verificados, falhos, condicionais e não encontrados

Prompts de Referência Rápida

  1. Quick Verification Reference (quick_verification_reference)

    • Modelos de consulta rápida para cenários comuns de verificação
    • Personalizável por tipo de entrada do usuário
  2. Response Templates Quick (response_templates_quick)

    • Modelos de resposta rápida com indicadores de status (✅ ⚠️ ❌)
    • Modelos para casos verified, cannot_verify e problems_found
  3. Tool Selection Guide (tool_selection_guide)

    • Árvore de decisão para selecionar a ferramenta MCP correta
    • Orientação específica para diferentes contextos de verificação
  4. Common Keywords Reference (common_keywords_reference)

    • Referência de palavras-chave que acionam a verificação de caridade
    • Padrões de reconhecimento de intenção para assistentes de IA
  5. AI Assistant Best Practices (ai_assistant_best_practices)

    • Melhores práticas abrangentes para usar o sistema de verificação de caridade
    • Diretrizes para comunicação, tratamento de erros e experiência do usuário

Usando Prompts

Assistentes de IA podem acessar esses prompts através do protocolo MCP:

{
  "method": "prompts/get",
  "params": {
    "name": "basic_legitimacy_workflow",
    "arguments": {
      "verification_type": "organization_name",
      "organization_name": "American Red Cross"
    }
  }
}

Uso com Clientes MCP

Claude Desktop

Adicione à sua configuração do Claude Desktop:

{
  "mcpServers": {
    "charity-server": {
      "command": "node",
      "args": ["path/to/charity-mcp-server/build/index.js"],
      "env": {
        "CHARITY_API_KEY": "your_api_key_here"
      }
    }
  }
}

Outros Clientes MCP

O servidor implementa o protocolo MCP padrão e funciona com qualquer cliente compatível. Conecte-se usando transporte stdio.

Desenvolvimento

Estrutura do Projeto

src/
├── config/          # Configuration management
├── formatting/      # Response formatting utilities
├── prompts/         # MCP prompt implementations and templates
├── schemas/         # Zod validation schemas
├── services/        # External API clients and rate limiting
├── tools/           # MCP tool implementations
├── transformers/    # Data transformation utilities
├── types/           # TypeScript type definitions
├── utils/           # Logging, error handling, validation
└── validation/      # Input validation and sanitization

Comandos de Desenvolvimento

# Install dependencies
npm install

# Run in development mode with hot reload
npm run dev

# Build for production
npm run build

# Start production server
npm start

# Clean build artifacts
npm run clean

# Run tests (when implemented)
npm test

# Run linting (when configured)
npm run lint

Arquitetura

O servidor segue uma arquitetura em camadas:

  1. Camada MCP: Lida com comunicação de protocolo e registro de ferramentas
  2. Camada de Validação: Sanitização e validação de entrada com esquemas Zod
  3. Camada de Serviço: Comunicação com API externa com limitação de taxa
  4. Camada de Transformação: Transformação e padronização de dados
  5. Camada de Formatação: Formatação de resposta para consumo ideal de IA

Componentes Principais

  • Validação de Entrada: Validação de formato EIN, sanitização de segurança
  • Limitação de Taxa: Algoritmo de balde de tokens com limites configuráveis
  • Tratamento de Erros: Respostas de erro estruturadas com mensagens amigáveis
  • Registro de Logs: Registro estruturado com níveis configuráveis
  • Segurança de Tipos: Cobertura completa em TypeScript com validação em tempo de execução

Referência da API

Integração com CharityAPI

Este servidor integra-se com CharityAPI.org para fornecer:

  • Acesso ao banco de dados completo de organizações sem fins lucrativos do IRS
  • Consulta de informações de caridade em tempo real
  • Recursos de pesquisa e filtragem de organizações
  • Verificação de status de dedução fiscal

Limitação de Taxa

Limites de taxa padrão:

  • 100 solicitações por minuto por ferramenta
  • Configurável via variáveis de ambiente
  • Limpeza automática de tokens expirados

Contribuindo

  1. Faça um fork do repositório
  2. Crie um branch de recurso (git checkout -b feature/amazing-feature)
  3. Faça commit das suas alterações (git commit -m 'Add amazing feature')
  4. Envie para o branch (git push origin feature/amazing-feature)
  5. Abra um Pull Request

Diretrizes de Desenvolvimento

  • Mantenha a conformidade com o modo estrito do TypeScript
  • Adicione validação abrangente de entrada para novos recursos
  • Inclua tratamento de erros com mensagens amigáveis
  • Atualize esquemas e tipos para novas estruturas de dados
  • Adicione registro de logs para depuração e monitoramento
  • Siga os padrões existentes de organização de código

Licença

Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.

Exemplos de Prompts e Uso

Para assistentes de IA que usam este servidor MCP, consulte nossos guias abrangentes de prompts:

Exemplos de Prompts de Verificação

Verificação Básica de Legitimidade:

  • "A Cruz Vermelha Americana é uma caridade real registrada no IRS?"
  • "Verifique se a organização com EIN 13-1837418 é legítima"
  • "Verificação rápida: o EIN 52-1693387 é uma caridade pública legítima?"

Verificação de Organização Suspeita:

  • "Recebi uma solicitação de doação da 'Help Kids Foundation' - eles são legítimos?"
  • "Alguém está coletando dinheiro para alívio de furacão - EIN 12-3456789. É real?"

Verificação Específica por Localização:

  • "Existe uma caridade legítima chamada 'Local Food Bank' em Chicago, IL?"
  • "Verifique a 'Animal Rescue' operando na Califórnia"

Suporte

  • Problemas: Relate bugs e solicitações de recursos via GitHub Issues
  • Documentação: Documentação adicional disponível na pasta /docs
  • CharityAPI: Para perguntas relacionadas à API, visite CharityAPI.org

Agradecimentos