O servidor MCP do Ocean expõe os mesmos dados da API REST por meio do Model Context Protocol, para que agentes de IA e clientes compatíveis com MCP (Claude Code, Claude.ai, Cursor) possam consultar usuários escaneados, pontuações de risco e registros do banco de dados de cheaters sem escrever chamadas REST manualmente.
Endpoint: https://api.anticheat.ac/mcp
Transporte: Streamable HTTP (POST somente, respostas JSON)
Autenticação: OAuth 2.1 com PKCE
O servidor fala Streamable HTTP, então qualquer cliente MCP que suporte esse transporte pode se conectar. Cada cliente abaixo cuida do login OAuth por conta própria: a primeira tentativa de conexão abre o navegador na página de autorização do Ocean (https://api.anticheat.ac/oauth/authorize, que leva você à tela de consentimento), onde você entra e escolhe quais escopos conceder.
Adicione o servidor e depois autentique com /mcp dentro do Claude Code:
claude mcp add --transport http ocean https://api.anticheat.ac/mcp
Ou adicione ao .mcp.json no seu projeto:
{
"mcpServers": {
"ocean": {
"type": "http",
"url": "https://api.anticheat.ac/mcp"
}
}
}Configurações → Conectores → Adicionar conector personalizado. Dê o nome Ocean, defina a URL como https://api.anticheat.ac/mcp, depois Conectar e conclua o login do Ocean. Não é necessário configurar JSON.
Adicione ao ~/.cursor/mcp.json (global) ou .cursor/mcp.json (projeto):
{
"mcpServers": {
"ocean": {
"url": "https://api.anticheat.ac/mcp"
}
}
}Depois, em Configurações do Cursor → MCP, clique em Entrar ao lado do servidor quando ele mostrar "Needs login".
Adicione ao .vscode/mcp.json:
{
"servers": {
"ocean": {
"type": "http",
"url": "https://api.anticheat.ac/mcp"
}
}
}Inicie o servidor pelo editor; o VS Code solicita o login OAuth.
Adicione ao ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"ocean": {
"serverUrl": "https://api.anticheat.ac/mcp"
}
}
}Adicione ao ~/.gemini/settings.json:
{
"mcpServers": {
"ocean": {
"httpUrl": "https://api.anticheat.ac/mcp"
}
}
}Aponte para https://api.anticheat.ac/mcp. O cliente precisa de suporte a Streamable HTTP e a OAuth 2.1 com PKCE, e deve suportar Dynamic Client Registration ou Client ID Metadata Documents; a descoberta começa em https://api.anticheat.ac/.well-known/oauth-protected-resource/mcp. Para depurar uma conexão manualmente, use o MCP Inspector:
npx @modelcontextprotocol/inspector
Depois escolha o transporte Streamable HTTP e informe a URL acima.
Cada ferramenta corresponde ao mesmo escopo de permissão do seu endpoint REST. Uma chamada de ferramenta falha se a conta por trás da conexão não concedeu o escopo correspondente.
| Ferramenta | Escopo | Descrição |
|---|---|---|
| lookup_scanned_user | scanned-users:lookup | Consulte o histórico completo de scans, detecções, status de ban/aviso e contas relacionadas de um usuário do Discord |
| get_user_risk_score | user:risk-score | Obtenha a pontuação e o nível de risco calculados de um usuário do Discord |
| create_scan_pin | pins:create | Crie PINs de scan de forma programática. Somente proprietários de Enterprise, recebe um argumento enterpriseId |
| get_scan_pin_status | pins:status | Obtenha o progresso do scan em tempo real, a porcentagem de status e o resumo dos resultados dos seus PINs |
| get_scan_pin_results | pins:results | Obtenha os resultados de scan dos seus próprios PINs |
| query_cheater_database | db:query (acesso ao banco de dados) | Pesquise no banco de dados de cheaters por ID do Discord: perfil da comunidade, consulta na rede e correspondências de scans do Ocean |
| get_client_version | nenhum | Leia a versão do cliente do Ocean atualmente ativa |
Conceder um escopo na tela de consentimento do OAuth não ignora a verificação de licença subjacente. db:query só pode ser concedido a contas com um plano DB Access ativo, uma vaga de banco de dados de um Enterprise ou um cargo da equipe, e pins:create só pode ser concedido a contas que sejam proprietárias de um Enterprise ativo, exigindo um enterpriseId argumento em toda chamada.
| Limite | Valor |
|---|---|
| Limite de requisições | 1.000 requisições por hora por conta (todo POST para /mcp conta, incluindo initialize e tools/list; 429 quando excedido) |
Revogue uma conexão MCP a qualquer momento em Configurações → Aplicativos conectados no painel do Ocean.
| Sintoma | Significado |
|---|---|
401 com o cabeçalho WWW-Authenticate | Access token ausente ou expirado. Reconecte o servidor (a maioria dos clientes atualiza automaticamente; se não, remova e adicione de novo) |
A chamada da ferramenta retorna isError nomeando um escopo | A conexão foi autorizada sem esse escopo. Desconecte e reconecte, concedendo a permissão na tela de consentimento |
create_scan_pin falha com um erro de permissão | Exige o argumento enterpriseId e só funciona para contas que sejam proprietárias desse Enterprise ativo |
429 | O limite de 1.000 requisições por hora por conta foi atingido; aguarde a janela ser reiniciada |
Está criando seu próprio cliente MCP para o Ocean? O servidor implementa OAuth 2.1 com PKCE obrigatório (S256) e segue a especificação de autorização do MCP.
| Detalhe | Valor |
|---|---|
| Metadados do servidor de autorização | https://api.anticheat.ac/.well-known/oauth-authorization-server |
| Metadados do recurso protegido | https://api.anticheat.ac/.well-known/oauth-protected-resource/mcp |
| Registro de cliente | Dynamic Client Registration para clientes públicos, ou Client ID Metadata Documents |
| PKCE | Obrigatório, S256 |
| Vida útil do access token | 15 minutos |
| Refresh tokens | Rotacionados a cada uso |