Skip to main content
Glama

mcp-perfil

Currículo + portfólio vivo: um servidor MCP (Model Context Protocol) que expõe seu perfil profissional como ferramentas consumíveis por agentes de IA (Claude Code, Claude Desktop, Cursor, VS Code, qualquer cliente MCP), e que também serve uma landing page bonita e um PDF de currículo bilíngue (PT/EN) — tudo gerado na hora, direto de um único arquivo de dados (profile.json).

Este README é um guia de replicação: siga os passos para transformar isto no seu perfil, do zero ao deploy.

O que você ganha

  • Servidor MCP (get_experiences, get_skills, get_projects, get_summary, get_recommendations, get_github_repos, get_github_repo) — qualquer agente de IA pode consultar seu histórico profissional em tempo real.

  • Landing page bilíngue (PT/EN), com modo "view as agent" (texto puro para LLMs), projetos puxados ao vivo do GitHub (com cache), e uma seção "para agentes" com o comando de instalação do seu MCP pronto para copiar.

  • Currículo em PDF, gerado na hora a partir dos mesmos dados, nos dois idiomas, disponível em /resume e /resume?lang=en.

  • Testes automatizados (npm test) que travam a integridade dos dados: se você adicionar uma experiência/projeto sem a tradução em inglês correspondente, a suíte falha antes de você publicar.

  • CI no GitHub Actions, rodando os testes a cada push/PR.

Related MCP server: Pavan Madduri — Personal Knowledge MCP Server

1. Fork e instalação

git clone https://github.com/<seu-usuario>/mcp-perfil.git
cd mcp-perfil
npm install

2. Edite profile.json com os seus dados

Esse arquivo é a única fonte de verdade — landing page, PDF e ferramentas MCP leem dele. Campos principais:

Campo

O que é

nome, nome_exibicao

Nome completo e nome curto exibido no site

titulo, localizacao, resumo_curto, resumo

Headline, cidade, resumo curto (hero/currículo) e resumo longo

contato.linkedin / .github / .site

Links do rodapé e do currículo

habilidades

Objeto de categorias → lista de skills (vira os chips na página e as seções do PDF)

idiomas

[{ "idioma": "...", "nivel": "..." }]

experiencias

[{ cargo, empresa, inicio, fim, descricao, tecnologias[] }] — bullets de descricao começam com "- "

formacao

[{ curso, instituicao, local, inicio, fim }]

certificacoes

[{ nome, instituicao, emissao, credencial }]

projetos

[{ nome, descricao, link, tecnologias[], categoria, status }] — nome deve bater com o nome do repositório no GitHub para puxar estrelas/linguagem ao vivo

recomendacoes_recebidas

[{ autor, cargo_autor, relacao, data, texto }]

github_usuario

Seu usuário do GitHub, usado para listar repositórios públicos

Troque também os assets em public/:

  • public/favicon.jpg — ícone do site

  • public/portrait.mp4 — vídeo curto do seu rosto, usado no efeito de pontos do hero (mudo, alguns segundos, de preferência fundo neutro — o efeito faz a extração de silhueta automaticamente)

E o e-mail de contato: procure por jeansaantos89@gmail.com em src/landing-page.js e src/resume.js e troque pelo seu.

3. Traduza para inglês (src/i18n.js)

A página e o PDF renderizam em inglês por padrão e trocam para português no clique do botão EN/PT. As traduções vivem em dicionários PT→EN dentro de src/i18n.js (ROLES, BULLETS, PROJECTS, TITLES, TERMS, etc.) e são aplicadas pela função en().

Depois de editar profile.json, rode os testes — eles apontam exatamente o que ainda falta traduzir:

npm test

Se aparecer missing EN translation for ..., adicione a entrada correspondente no dicionário certo em i18n.js (o próprio erro já mostra o texto que falta).

4. Rode localmente

npm run start:http

Abre em http://localhost:3000. Edite profile.json e dê refresh para ver as mudanças — não há build, tudo é renderizado a cada request.

Para usar via stdio (Claude Desktop/Code local, sem subir servidor HTTP):

npm start

5. Deploy gratuito (Render)

  1. Suba o fork no GitHub.

  2. Crie uma conta em render.com (login com GitHub, sem cartão).

  3. New + → Web Service → selecione o repositório.

  4. Configure:

    • Runtime: Node

    • Build Command: npm install

    • Start Command: npm run start:http

    • Instance Type: Free

  5. Depois do deploy, a URL pública (ex: https://seu-app.onrender.com/mcp) já pode ser usada em qualquer cliente MCP compatível com Streamable HTTP.

O plano free do Render "dorme" após 15 min de inatividade — a primeira requisição após esse período pode levar ~1 min para responder. Para evitar isso, configure um cronjob externo (ex: cron-job.org, grátis) batendo a cada 10 min em https://seu-app.onrender.com/health — essa rota responde um "ok" mínimo, pensada exatamente para pingers de keep-alive (a página completa é grande demais para a maioria desses serviços). Mantendo um único serviço free sempre ativo você fica dentro da cota de 750h de instância gratuita por mês do Render; se tiver outro serviço free na mesma conta, as horas somam e podem estourar o limite.

6. Conecte num cliente MCP

Com o servidor rodando (local ou no Render), a própria landing page mostra o comando de instalação pronto na seção "for agents", para Claude Code, Cursor, VS Code e curl. Exemplo (Claude Code):

claude mcp add --transport http perfil https://seu-app.onrender.com/mcp

Estrutura

profile.json          — todos os dados do perfil (a única fonte de verdade)
public/                — favicon e vídeo do retrato
src/
  create-server.js     — tools/resources do MCP, leitura do profile.json e da API do GitHub
  server.js            — entrada stdio (uso local em clientes MCP)
  http-server.js        — entrada HTTP: landing page, PDF do currículo, /health, e /mcp (Streamable HTTP)
  landing-page.js       — renderiza a landing page (HTML+CSS+JS inline, sem build step)
  resume.js             — gera o PDF do currículo (pdfkit), bilíngue
  i18n.js               — dicionários de tradução PT→EN e textos de UI
tests/                 — node --test: integridade de tradução, estrutura da página, PDF, rotas HTTP
.github/workflows/      — CI rodando os testes a cada push/PR

Rodando os testes

npm test

Cobre: toda experiência/projeto/formação tem tradução em inglês registrada, a página renderiza um card/entrada por item do profile.json (sem hardcode de conteúdo), o PDF do currículo é gerado com sucesso nos dois idiomas, e as rotas HTTP respondem como esperado — incluindo um teste de regressão para a proteção contra path traversal na rota de arquivos estáticos.

Licença

MIT — use, copie, modifique e redistribua à vontade, inclusive comercialmente, só mantendo o aviso de copyright.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Exposes a public, read-only professional profile with tools to search resume evidence, fetch curated links, and generate career briefs for LLM agents.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server that exposes a professional profile — certifications, industry articles, open source contributions, and live GitHub activity — as a queryable API for AI agents.
    7
    11
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Exposes a structured professional resume as a set of AI-queryable tools, enabling AI clients like Claude Desktop to query summary, experience, skills, projects, and tailor resumes to job descriptions.
    1
    MIT