Patent by Ouroboros Apps

Patent by Ouroboros Apps: busca de patentes USPTO e consulta de estado da técnica. Não é aconselhamento jurídico

Servidor MCP hospedado

npx add-mcp 'https://patent-mcp.vercel.app/mcp'

Instala no Claude Code, Codex, Cursor e outros

Documentação

Patent by Ouroboros

Patent by Ouroboros é um servidor MCP remoto para inventores, fundadores de startups, agentes e advogados de patentes, e engenheiros que precisam verificar se uma ideia já aparece no registro público de patentes.

Ele pesquisa o USPTO Open Data Portal e, quando você adiciona uma chave de consumidor gratuita, o EPO Open Patent Services. O Google Patents é usado apenas como um link. Cada número de patente em um resultado de ferramenta é copiado de uma resposta oficial. O servidor não preenche números quando um escritório não responde.

Isto não é aconselhamento jurídico. Não substitui um advogado ou agente de patentes registrado. Um resultado não é uma opinião sobre patenteabilidade, violação, validade ou liberdade de operação.

Servidor hospedado

  • URL do servidor MCP: https://patent-mcp.vercel.app/mcp (Streamable HTTP, login OAuth)
  • Documentação: https://ouroborosapps.com/docs/patent
  • Status: acesso antecipado. Cole a URL no Claude, Cursor, Grok ou modo de desenvolvedor do ChatGPT.
  • Cobertura no servidor hospedado: USPTO Open Data Portal. O EPO Open Patent Services não está ativado, portanto a pesquisa completa de texto de reivindicações e a pesquisa de citações EPO não estão disponíveis lá.
  • Nome do registro: io.github.LAHutchins91/patent

Conectar

O endereço MCP é a origem da sua implantação mais /mcp. Localmente, isso é http://127.0.0.1:8787/mcp.

Faça login quando o assistente abrir o OAuth. Deixe o ID do cliente e o segredo vazios. O servidor suporta registro dinâmico de cliente OAuth 2.1 e PKCE (S256). Não cole uma senha ou chave de API do escritório no assistente.

Cursor, em ~/.cursor/mcp.json ou em um projeto .cursor/mcp.json:

{
  "mcpServers": {
    "patent": {
      "url": "http://127.0.0.1:8787/mcp"
    }
  }
}

Claude Code:

claude mcp add --transport http patent http://127.0.0.1:8787/mcp

ChatGPT, Claude, Gemini, Grok e qualquer outro cliente Streamable HTTP: adicione a mesma URL, escolha OAuth e deixe o ID do cliente e o segredo em branco. As etapas completas estão em /connect.

Uma nova conta inclui 14 dias de acesso à pesquisa. Após o teste, o Pro continua através do Stripe Checkout. O valor é exibido pelo Stripe, não neste repositório.

server.json é o manifesto do MCP Registry (io.github.LAHutchins91/patent). Seu ícone é https://patent-mcp.vercel.app/logo.jpg. Antes de publicar a entrada do registro, defina remotes[0].url e websiteUrl para a origem pública. O arquivo atualmente usa https://patent-mcp.vercel.app/mcp como o caminho Vercel pretendido.

Ferramentas

  • search_patents — palavras-chave, linguagem de reivindicações, classe CPC, cessionário, inventor e datas
  • get_patent — resumo, reivindicações, status, família e citações para um registro
  • find_patent_citations — documentos que citam uma patente e documentos que a patente cita
  • search_prior_art — uma descrição de ideia inserida, os registros oficiais mais próximos e seus links do Google Patents

A cobertura de citações é o documento de concessão do USPTO, citações de ações oficiais do USPTO e pesquisa de citações EPO quando configurada. O gráfico de citações do PatentsView está pausado: o USPTO pausou a API PatentSearch do PatentsView quando o PatentsView migrou para o Open Data Portal em 20 de março de 2026.

Executar localmente

npm install
cp .env.example .env
npm run dev

O servidor escuta na porta 8787. GET /health retorna JSON. billingConfigured é verdadeiro somente quando STRIPE_SECRET_KEY, STRIPE_PRICE_MONTHLY e STRIPE_PRICE_YEARLY estão todos definidos.

npm test
npm run typecheck

Os testes chamam os hosts públicos do USPTO e EPO. Payloads oficiais que exigem chaves são simulados. Com USPTO_API_KEY ou credenciais de consumidor EPO no ambiente, o teste ao vivo usa essas credenciais em vez de esperar a resposta não autenticada.

Ambiente

Lawrence precisa fornecer:

VariávelPropósito
APP_BASE_URLOrigem pública usada como emissor OAuth e URL de retorno do Stripe
AUTH_SECRETAssina sessões de navegador. Obrigatório em produção
USPTO_API_KEYChave gratuita do USPTO Open Data Portal, enviada como X-API-KEY
EPO_CONSUMER_KEYChave de consumidor EPO OPS
EPO_CONSUMER_SECRETSegredo de consumidor EPO OPS
STRIPE_SECRET_KEYSegredo Stripe existente
STRIPE_PRICE_MONTHLYID de preço mensal existente
STRIPE_PRICE_YEARLYID de preço anual existente
STRIPE_WEBHOOK_SECRETSegredo de assinatura do webhook Stripe
STORAGE_BACKENDmemory (padrão), file, http ou blob
STORAGE_PATHArquivo JSON usado quando o backend é file
STORAGE_URLURL GET/PUT para um documento JSON quando o backend é http
STORAGE_TOKENToken de portador opcional para essa URL
BLOB_READ_WRITE_TOKENToken de leitura/gravação do Vercel Blob. O Vercel injeta isso para uma loja vinculada. Obrigatório quando STORAGE_BACKEND=blob
STORAGE_BLOB_PATHCaminho do Blob para o documento da conta. Padrão patent/accounts.json

Não crie produtos ou preços Stripe neste aplicativo. Não faça commit de segredos.

Chave USPTO

  1. Crie uma conta USPTO.gov.
  2. Verifique e vincule o ID.me. Esse vínculo é único.
  3. Abra Open Data Portal getting started e solicite uma chave de API.
  4. Defina USPTO_API_KEY.

Chaves antigas da API PatentsView não funcionam no Open Data Portal.

Chave EPO

  1. Registre-se em developers.epo.org.
  2. Crie um aplicativo. O EPO mostra uma chave de consumidor e um segredo de consumidor.
  3. Defina EPO_CONSUMER_KEY e EPO_CONSUMER_SECRET.

O OPS é gratuito dentro da política de uso justo do EPO. O servidor envia grant_type=client_credentials para https://ops.epo.org/3.2/auth/accesstoken.

Contas e armazenamento

As ferramentas de patente são pesquisas sem estado de escritórios públicos. O estado de teste e assinatura, clientes OAuth e tokens vivem em um único documento JSON atrás de AccountStore.

  • memory mantém esse documento no processo. É o padrão e o que os testes locais usam. Não sobrevive a uma reinicialização ou a uma segunda instância serverless.
  • file grava STORAGE_PATH (padrão ./data/patent-store.json). Use para Docker ou um processo Node de longa duração.
  • http faz GET e PUT do mesmo documento em STORAGE_URL. Aponte para o armazenamento que você já executa. Este servidor não cria um banco de dados.
  • blob armazena o mesmo documento no Vercel Blob em STORAGE_BLOB_PATH (padrão patent/accounts.json). Defina STORAGE_BACKEND=blob no Vercel. O cliente Blob usa BLOB_READ_WRITE_TOKEN, que o Vercel injeta quando uma loja Blob está conectada. As leituras ignoram o cache CDN. As gravações enviam ifMatch e tentam novamente quando outra instância atualizou o documento primeiro.

Clientes OAuth, códigos de autorização, tokens de acesso e tokens de atualização são campos nesse documento. A tela de consentimento envia a solicitação de autorização com a aprovação; nada sobre a concessão é mantido na memória do processo. Códigos expirados e tokens de atualização são removidos a cada gravação.

Implantar

Vercel: o aplicativo Express é a exportação padrão de api/index.ts. vercel.json envia cada caminho para essa função e agrupa logo.jpg nela, então /logo.jpg é servido pelo aplicativo e arquivos do repositório como /package.json não são ativos estáticos. Defina as variáveis de ambiente acima, incluindo STORAGE_BACKEND=blob. Aponte o webhook do Stripe para https://<your-host>/billing/webhook.

Docker:

docker build -t patent-mcp .
docker run --env-file .env -p 8787:8787 patent-mcp

O que foi verificado

Localmente, via Streamable HTTP: tools/list e cada uma das quatro ferramentas, registro OAuth com PKCE, expiração do teste, formato da solicitação de checkout do Stripe e verificação de assinatura do webhook. O host do USPTO respondeu sem chave (não autorizado). O host de token do EPO respondeu sem credenciais de consumidor. Nenhuma cobrança Stripe ao vivo foi feita, e o servidor não foi implantado no Vercel a partir deste espaço de trabalho.


Mais da Ouroboros: https://ouroborosapps.com