MyKIFRS MCP

Pesquise os padrões contábeis coreanos (K-IFRS, K-GAAP, auditoria, ICFR) e 3.669 perguntas e respostas oficiais parágrafo por parágrafo, para que as respostas da IA citem o número exato do parágrafo e o texto.

Servidor MCP hospedado

npx add-mcp 'https://mykifrs.eocpa.kr/mcp'

Instala no Claude Code, Codex, Cursor e outros

Documentação

MyKIFRS MCP

Busca em texto completo sobre as normas contábeis coreanas e as perguntas e respostas oficiais que as interpretam, disponibilizada como um servidor remoto MCP para profissionais de contabilidade.

O acervo abrange K-IFRS, K-GAAP (일반기업회계기준), interpretações, a Estrutura Conceitual, normas de auditoria coreanas, normas de ICFR (내부회계관리제도), normas de divulgação de sustentabilidade KSSB e 3.669 perguntas e respostas oficiais (회계기준원·금융감독원·신속처리질의·IFRS IC agenda decisions). As normas são armazenadas parágrafo por parágrafo, e cada parágrafo traz as perguntas e respostas que o citam.

  • Endpoint: https://mykifrs.eocpa.kr/mcp (Streamable HTTP, sem estado)
  • Credencial: um token eocpa de eocpa.kr/token
  • Nada para instalar: registre a URL no claude.ai, Claude Desktop, Claude Code, Cursor ou em qualquer cliente Streamable HTTP
  • Página inicial (em coreano): eocpa.kr/mykifrs

Por quê

Um modelo de linguagem pode parafrasear uma norma contábil; um profissional precisa citá-la. O número do parágrafo, o texto exato, as condições nos parágrafos vizinhos e a resposta do regulador para a mesma questão são o que entra em um memorando. Este servidor os retorna na íntegra: os resultados da busca apontam para um unique_key como 1116-33, get_paragraph retorna esse parágrafo com seu contexto ao redor, e related_qnas lista os documentos de perguntas e respostas emitidos sobre ele.

Ferramentas

FerramentaEntradaRetorna
search_standardsquery, std_num?, limit?Resultados de parágrafos em todas as normas (unique_key, título da norma, categoria, trecho), ordenados por relevância
search_qnasquery, limit?Resultados de perguntas e respostas com qna_key, número do documento, data, órgão emissor, normas relacionadas, trecho
get_paragraphunique_key, context?O texto do parágrafo com context vizinhos de cada lado, metadados da norma e related_qnas
get_qnadoc_number ou qna_keyTexto completo de um documento de perguntas e respostas (um array — um número pode aparecer mais de uma vez ou estar vazio; qna_key = {source}:{id} fixa uma linha)
list_standardscategory?Catálogo das normas no acervo com seus std_num

Toda ferramenta é somente leitura, idempotente e local (SQLite + FTS5). Nenhuma chamada externa é feita durante o atendimento de uma solicitação.

Comportamento da busca

  • Tokens de três ou mais caracteres vão para o FTS5 (unidos por AND, ordenados por classificação). Tokens de um e dois caracteres tornam-se filtros LIKE, porque o índice de trigramas não consegue correspondê-los. Uma consulta composta apenas de tokens curtos ainda funciona, mas é ordenada por número da norma, não por relevância.
  • Os resultados da busca retornam um trecho com os termos correspondentes envoltos em ⟦…⟧. Um trecho é um fragmento; cite o content_text de get_paragraph, nunca o trecho.
  • unique_key é {standard number}-{paragraph number} e os números de parágrafo não são apenas dígitos (B58, AG12, 6.1.1). Passe o valor exatamente como está.

Usando o servidor

1. Obtenha uma credencial

Solicite um token eocpa em eocpa.kr/token. Chamadas de ferramenta exigem o token; a descoberta (initialize, tools/list, ping) funciona sem ele, então a integração do conector nunca falha por autenticação.

2. Conecte-se

A credencial pode viajar em qualquer um destes campos; o servidor os trata de forma idêntica:

CampoExemplo
Cabeçalho personalizadox-eocpa-token: <token> (também aceito: x-api-key)
BearerAuthorization: Bearer <token>
String de consultahttps://mykifrs.eocpa.kr/mcp?key=<token>

claude.ai (web) — o diálogo do conector personalizado aceita apenas uma URL, então coloque o token na string de consulta:

https://mykifrs.eocpa.kr/mcp?key=<token>

Claude Desktop / Claude Code — faça a ponte com mcp-remote para que o token permaneça em um cabeçalho:

{
  "mcpServers": {
    "mykifrs": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mykifrs.eocpa.kr/mcp", "--header", "x-eocpa-token:${EOCPA_TOKEN}"],
      "env": { "EOCPA_TOKEN": "<token>" }
    }
  }
}

Clientes com campo de cabeçalho (Cursor e outros) — insira o endpoint e o cabeçalho x-eocpa-token diretamente.

Um manifesto de plugin do Claude Code está incluído em .claude-plugin/plugin.json, e server.json é o manifesto para o Registro oficial de MCP.

3. Verifique

curl https://mykifrs.eocpa.kr/health

curl -X POST https://mykifrs.eocpa.kr/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "x-eocpa-token: <token>" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

Uma chamada de ferramenta sem credencial retorna 401; uma credencial presente, mas rejeitada, retorna 403 com uma mensagem que o informa.

Canal PlayMCP

https://mykifrs.eocpa.kr/mcp/playmcp é o mesmo servidor com a mesma autenticação, com o contrato de resposta exigido pela plataforma PlayMCP: todo resultado de ferramenta permanece dentro de 24.000 caracteres. Resultados que excederiam esse limite são truncados estruturalmente (as extremidades dos arrays e as strings mais longas são encurtadas) e sinalizados com playmcp_truncated: true, um playmcp_truncation_note e playmcp_text_truncated em qualquer objeto cujo texto foi cortado. O endpoint padrão /mcp nunca trunca.

Dados e termos de uso

O acervo (data/kasb.sqlite) não faz parte deste repositório. O texto das normas é obra do Korea Accounting Standards Board e, para K-IFRS, da IFRS Foundation; as perguntas e respostas são publicações da KASB e do Financial Supervisory Service. O servidor hospedado é oferecido para referência pessoal de profissionais de contabilidade. A redistribuição do texto completo ou a transformação do acervo em um serviço público exige permissão dos detentores dos direitos.

Desenvolvimento

Requer Node.js 22+.

git clone https://github.com/taesueocpa/mykifrs-mcp.git
cd mykifrs-mcp
npm install
npm run build

Executar o servidor localmente exige um acervo em data/kasb.sqlite (esquema em src/store/kasb-db.ts), que este repositório não inclui. Com um em vigor:

npm run stdio     # stdio transport
npm start         # HTTP on :8080 — /mcp and /mcp/playmcp
Variável de ambienteFinalidade
PORTPorta HTTP (padrão 8080)
KASB_DBLocalização do acervo (padrão data/kasb.sqlite)
TOKEN_VALIDATE_URLEndpoint de validação de token (padrão https://eocpa.kr/validate)
MYKIFRS_ALLOW_ANONYMOUS=1Apenas para desenvolvimento local — ignora a validação de token; ignorado no Fly.io
USAGE_DB_PATHLocalização do log de uso (padrão data/usage.sqlite)
PLAYMCP_LIMIT, PLAYMCP_LIMIT_UNITOrçamento do canal PlayMCP (padrão 24000, chars)
MCP_ALLOWED_ORIGINSLista de permissões Origin separada por vírgulas para /mcp (proteção contra rebinding de DNS). Solicitações sem cabeçalho Origin e origens localhost sempre passam

Estrutura:

src/main.ts          entry point (stdio by default, --http or MCP_MODE=http for remote)
src/tools/           tool registry — the single source of truth for both transports
src/server/          dispatch, server assembly, auth, HTTP wiring, PlayMCP profile and budget guard
src/store/           SQLite schema, boot-time validation, FTS definition, usage log
src/search/          query tokenizer (FTS / LIKE split)

Relacionados

  • MyFSS MCP — documentos de supervisão contábil da FSS/FSC
  • eocpa.kr — hub e emissão de tokens