Movahedi Privacy API
Dados gratuitos de privacidade canadense para assistentes de IA: ações de fiscalização de privacidade pesquisáveis (OPC, CAI Quebec), um glossário de privacidade em linguagem simples com 263 termos e uma lista de verificação de conformidade com a Lei 25 de Quebec em 11 pontos. Servidor MCP HTTP transmitível com cinco ferramentas somente leitura. Sem necessidade de cadastro; cotas gratuitas generosas.
Servidor MCP hospedado
npx add-mcp 'https://movahedi.ca/mcp'Instala no Claude Code, Codex, Cursor e outros
Documentação
Início rápido
Nenhuma chave é necessária para as primeiras 2.000 chamadas por dia. Experimente:
curl "https://movahedi.ca/api/v1/enforcement?regulator=cai&per_page=5"
A resposta é envolvida em um pequeno envelope: data contém o payload, meta contém a paginação, lang é sempre "en".
Endpoints
| Método | Caminho | O que retorna |
|---|---|---|
| GET | /api/v1/enforcement | Ações de fiscalização CAI e OPC verificadas (filtre por regulator, year, q) |
| GET | /api/v1/enforcement/:id | Uma ação de fiscalização, registro completo |
| GET | /api/v1/glossary | Termos do glossário de privacidade (filtre por q, letter) |
| GET | /api/v1/glossary/:term | Uma definição do glossário por slug |
| GET | /api/v1/law25/checklist | Requisitos da Lei 25 de Quebec (filtre por category) |
| GET | /api/v1/openapi.json | Especificação OpenAPI 3.1 legível por máquina |
| GET | /api/v1/terms | Termos de uso da API |
| GET | /api/v1/health | Status do serviço e versão dos dados |
| POST | /mcp | Servidor MCP (Streamable HTTP, JSON-RPC) |
Toda resposta carrega ETag para cache. Envie If-None-Match para receber um 304 quando nada mudou.
Cotas
- Anônimo: 2.000 chamadas por IP por dia UTC.
- Com chave gratuita: 10.000 chamadas por chave por dia UTC.
Os cabeçalhos de cota voltam em toda resposta: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset. Quando a cota é esgotada, você recebe HTTP 429 com um cabeçalho Retry-After e um link para obter uma chave.
Autenticação
As chaves são gratuitas e não exigem conta ou e-mail. Envie a sua como um token de portador:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://movahedi.ca/api/v1/glossary?query=consent"
Obtenha uma chave resolvendo um desafio Cloudflare Turnstile e aceitando os termos da API. A chave é exibida uma única vez e nunca é armazenada em nosso lado.
Exemplos
JavaScript
const res = await fetch(
"https://movahedi.ca/api/v1/law25/checklist?category=Consent",
{ headers: { Authorization: "Bearer YOUR_API_KEY" } }
);
const { data } = await res.json();
console.log(data.items.map((c) => c.title));
Python
import requests
res = requests.get(
"https://movahedi.ca/api/v1/enforcement",
params={"regulator": "cai", "per_page": 5},
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
res.raise_for_status()
for case in res.json()["data"]["items"]:
print(case["date"], "-", case["title"])
Servidor MCP
Aponte qualquer cliente MCP para o endpoint Streamable HTTP: https://movahedi.ca/mcp. Sem cadastro, sem chave necessária.
Claude Code
claude mcp add --transport http movahedi-privacy https://movahedi.ca/mcp
Claude Desktop
Abra Configurações > Conectores > Adicionar conector personalizado, ou use o botão acima. Digite o nome Movahedi Privacy API e a URL https://movahedi.ca/mcp. Em versões mais antigas sem conectores personalizados, adicione isso a claude_desktop_config.json (requer Node.js):
{
"mcpServers": {
"movahedi-ca-privacy": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://movahedi.ca/mcp"]
}
}
}
Cursor
Adicione a ~/.cursor/mcp.json (todo projeto) ou .cursor/mcp.json (este projeto), ou use o botão de um clique acima:
{
"mcpServers": {
"movahedi-ca-privacy": {
"url": "https://movahedi.ca/mcp"
}
}
}
Windsurf
Adicione a ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"movahedi-ca-privacy": {
"serverUrl": "https://movahedi.ca/mcp"
}
}
}
VS Code
Adicione a .vscode/mcp.json:
{
"servers": {
"movahedi-ca-privacy": {
"type": "http",
"url": "https://movahedi.ca/mcp"
}
}
}
Qualquer outro cliente
{
"mcpServers": {
"movahedi-ca-privacy": {
"url": "https://movahedi.ca/mcp"
}
}
}
Cinco ferramentas somente leitura são expostas:
privacy_search_enforcement_actions: encontre casos por palavra-chave, regulador ou anoprivacy_get_enforcement_case: registro completo para um ID de casoprivacy_lookup_glossary_term: definição para um slug de termoprivacy_list_glossary_terms: navegue ou pesquise o glossário, paginadoprivacy_law25_requirements: a lista de verificação da Lei 25, opcionalmente por categoria
Exemplos de prompts após conectar:
- “Pesquise ações de fiscalização da CAI envolvendo vigilância por vídeo e resuma os resultados.”
- “Qual é a definição do glossário de privacidade para consentimento significativo?”
- “Liste os requisitos da Lei 25 sobre consentimento e retenção de dados.”
Envie a chave da API como Authorization: Bearer ... se você tiver uma. O servidor negocia a versão do protocolo MCP em initialize e retorna saída estruturada em cada chamada de ferramenta.
Listagens
Também listado no diretório MCP do Claude Market e no Glama.
Códigos de erro
| Status | Código | Significado |
|---|---|---|
| 400 | invalid_parameter | Um parâmetro de consulta falhou na validação. A mensagem nomeia o parâmetro e seus valores permitidos. |
| 404 | not_found | Nenhum registro corresponde ao ID ou slug. A mensagem aponta para o endpoint de busca. |
| 405 | method_not_allowed | Apenas GET é aceito nas rotas de dados. |
| 429 | quota_exhausted | Cota diária esgotada. Inclui key_url e Retry-After. |
| 500 | internal_error | Algo quebrou em nosso lado. Seguro tentar novamente após uma breve espera. |
Registro de alterações
v1.0.0, 2026-09-24
- Lançamento inicial: ações de fiscalização, glossário, lista de verificação da Lei 25, servidor MCP, chaves de API gratuitas.
- Versão dos dados
2026-09-24: 5 ações de fiscalização verificadas, 263 termos do glossário, 11 verificações da Lei 25.
Termos
Os dados são gratuitos para uso pessoal e comercial com atribuição a movahedi.ca. São fornecidos como estão, apenas para fins informativos, e não constituem aconselhamento jurídico. Termos completos: /api/v1/terms.