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
| Ferramenta | Entrada | Retorna |
|---|---|---|
search_standards | query, std_num?, limit? | Resultados de parágrafos em todas as normas (unique_key, título da norma, categoria, trecho), ordenados por relevância |
search_qnas | query, limit? | Resultados de perguntas e respostas com qna_key, número do documento, data, órgão emissor, normas relacionadas, trecho |
get_paragraph | unique_key, context? | O texto do parágrafo com context vizinhos de cada lado, metadados da norma e related_qnas |
get_qna | doc_number ou qna_key | Texto 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_standards | category? | 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 ocontent_textdeget_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:
| Campo | Exemplo |
|---|---|
| Cabeçalho personalizado | x-eocpa-token: <token> (também aceito: x-api-key) |
| Bearer | Authorization: Bearer <token> |
| String de consulta | https://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 ambiente | Finalidade |
|---|---|
PORT | Porta HTTP (padrão 8080) |
KASB_DB | Localização do acervo (padrão data/kasb.sqlite) |
TOKEN_VALIDATE_URL | Endpoint de validação de token (padrão https://eocpa.kr/validate) |
MYKIFRS_ALLOW_ANONYMOUS=1 | Apenas para desenvolvimento local — ignora a validação de token; ignorado no Fly.io |
USAGE_DB_PATH | Localização do log de uso (padrão data/usage.sqlite) |
PLAYMCP_LIMIT, PLAYMCP_LIMIT_UNIT | Orçamento do canal PlayMCP (padrão 24000, chars) |
MCP_ALLOWED_ORIGINS | Lista 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)