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.

Available Tools

7 tools
buscar_experienciasC

Busca experiências profissionais por empresa, cargo ou tecnologia

ParametersJSON Schema
NameRequiredDescriptionDefault
termoYesTermo de busca (empresa, cargo ou tecnologia)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden and discloses nothing beyond the one-line purpose. It says nothing about result ordering, matching semantics (partial vs exact), pagination, or the read-only nature of the operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler or redundancy. It is efficient, though the extreme brevity is a function of under-specification rather than disciplined editing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter search with no output schema and no nested objects, the description covers the minimum an agent needs to invoke it. It is still thin given the absence of annotations, leaving matching behavior and result shape undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single "termo" parameter is documented in the schema as "Termo de busca (empresa, cargo ou tecnologia)". The description merely repeats that same facet list, adding no syntax or matching-rule detail, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ("Busca experiências profissionais") and names the three searchable facets (empresa, cargo, tecnologia). This makes it distinguishable from siblings in principle, but it never explicitly says how it differs from buscar_projetos, so sibling differentiation is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus buscar_projetos or the listar_* siblings, and no prerequisites or exclusions are stated. The agent must infer the routing decision entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

buscar_projetosB

Busca projetos por nome ou tecnologia

ParametersJSON Schema
NameRequiredDescriptionDefault
termoYesTermo de busca (nome do projeto ou tecnologia)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full behavioral disclosure burden. 'Busca' implies a read-only search, but the description does not state whether results are paginated, what permissions are required, or any side effects, leaving a significant gap for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It is appropriately brief for a simple search tool, though its extreme terseness leaves some contextual gaps.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter search tool with 100% schema coverage and no annotations, the description covers the core action and criteria. However, without an output schema or annotation hints, it does not describe return values or behavioral traits, leaving the definition adequate but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the single parameter 'termo' is already fully documented in the schema. The description merely restates the same search scope ('nome ou tecnologia') without adding syntax, format, or matching behavior details, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Busca') and resource ('projetos') with its scope ('por nome ou tecnologia'). It is clearly distinguishable from sibling tools like buscar_experiencias because the resource differs, though it does not explicitly name an alternative to avoid confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The search criteria ('por nome ou tecnologia') imply when to use the tool, but there is no explicit guidance on when to choose it over siblings like buscar_experiencias or listar_habilidades, nor any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

buscar_repositorio_githubB

Busca detalhes de um repositório específico do GitHub por nome, incluindo README

ParametersJSON Schema
NameRequiredDescriptionDefault
usuarioNoUsuário do GitHub (opcional, usa o do perfil por padrão)
repositorioYesNome do repositório

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full behavioral burden, and it does little beyond noting the README is included in the result. It says nothing about authentication needs, rate limits, or what happens for nonexistent/private repositories.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that packs verb, resource, identification key, and the notable README inclusion with zero filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read tool with no output schema, the description is minimally adequate: purpose and README inclusion are covered, but error behavior and the distinction from the sibling listing tool are left unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (usuario optional with default, repositorio required) are already documented in the schema. The description adds no format, syntax, or defaulting detail beyond it, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Busca') plus resource ('detalhes de um repositório específico do GitHub') and adds scope ('por nome, incluindo README'). The word 'específico' implicitly distinguishes it from the sibling listar_repositorios_github, though it never names that alternative outright.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is for fetching one repo's details rather than listing them. There is no explicit when-to-use clause, no exclusions, and no mention of the sibling listar_repositorios_github as the alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listar_habilidadesA

Lista todas as habilidades/skills do perfil

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full behavioral burden, and it discloses almost nothing: no indication of whose profile is read (own vs. another user), whether the result is paginated or ordered, or what happens when the profile has no skills. "Todas" implies an unfiltered full list, which is the only real behavioral signal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with zero waste, front-loading the verb and the resource. Nothing could be removed without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read of a simple list, the description is nearly sufficient; there is no output schema, but the return (a list of skills) is self-evident from the wording. The only gap is the unstated scope of "do perfil".

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has zero parameters, so the baseline of 4 applies; there is nothing for the description to disambiguate. It correctly implies the call targets the profile implicitly rather than taking an identifier.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb+resource ("Lista todas as habilidades/skills do perfil"), so an agent immediately knows it retrieves the profile's skills. It does not name or contrast itself with any sibling, but the resources of the siblings (experiências, projetos, recomendações, repositórios) are distinct enough that confusion is unlikely.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use, prerequisites, or alternatives are given; usage is only implied by the name and the resource it lists. For a trivial zero-argument list tool with no obvious competing sibling this is tolerable, but it adds nothing an agent could not infer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listar_recomendacoesB

Lista as recomendações profissionais recebidas no perfil

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full behavioral burden. It does add useful scope context by specifying "recebidas" (received) rather than written, but it discloses nothing about ordering, pagination, visibility/privacy filtering, or authentication needs for a read-only listing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with the resource and its scope front-loaded and no wasted words. Nothing is padded or redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, zero-risk listing tool this is close to adequate, but with no output schema and no annotations the description leaves the return shape (fields, count, ordering) entirely unspecified. It is the minimum viable definition rather than a complete one.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is no parameter semantics to document; the schema is trivially complete. Baseline 4 applies for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("Lista") and resource ("recomendações profissionais recebidas"), and scopes it to the profile, so the agent knows exactly what is returned. It does not explicitly differentiate itself from the sibling listing tools, but the resource is distinct enough that confusion is unlikely.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use guidance, no prerequisites, and never mentions an alternative among the sibling tools (listar_habilidades, buscar_experiencias, etc.). Usage is only inferable from the tool name and resource scope.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listar_repositorios_githubB

Lista os repositórios públicos do GitHub do perfil (exclui forks), com descrição, linguagem, estrelas e tópicos

ParametersJSON Schema
NameRequiredDescriptionDefault
usuarioNoUsuário do GitHub (opcional, usa o do perfil por padrão)

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose two real behaviors: only public repos are returned and forks are excluded. It omits auth requirements, rate limits, pagination, and whether results are sorted or capped, which matters for a GitHub listing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence that names the resource, the filter (exclui forks), and the returned fields with zero filler. Slightly dense in the trailing field list, but no wasted sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema and no annotations, so the description usefully enumerates returned fields (descrição, linguagem, estrelas, tópicos) to compensate. It still leaves pagination, result limits, and the sibling-tool boundary unaddressed for a listing operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already explains the optional 'usuario' parameter and its profile default. The description's phrase 'do perfil' echoes that default without adding syntax, format, or constraint detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Lista os repositórios públicos do GitHub do perfil') and adds meaningful scope (exclui forks) plus the fields returned. It does not, however, differentiate itself from the sibling 'buscar_repositorio_github', which an agent could easily confuse with this listing tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use guidance, no prerequisites, and no mention of the overlapping sibling 'buscar_repositorio_github'. An agent must infer that this tool enumerates a profile's repos while the sibling likely targets a single repo.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resumo_perfilA

Retorna um resumo com nome, título, contato e resumo profissional

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. 'Retorna' implies a read-only retrieval, but no auth requirements, rate limits, or caching behavior are disclosed. For a zero-parameter read tool the exposure is low, but behavioral context is essentially absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no wasted words; the value returned is listed immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, describing the returned fields (name, title, contact, professional summary) is genuinely useful and largely covers what the agent needs. Given the tool's simplicity, little else is required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there are no parameter semantics to document. Baseline of 4 applies for a no-param tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Retorna') and resource (profile summary) and enumerates the content (nome, título, contato, resumo profissional). The resource is clearly distinct from the sibling tools (experiences, skills, projects, recommendations, repos), though it never explicitly differentiates itself from them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is given. The intended usage (fetch the candidate's headline profile data) is strongly implied by the name and description, but there is no routing to or from sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv1.0.0
    • First observedbuscar_experiencias
    • First observedbuscar_projetos
    • First observedbuscar_repositorio_github
    • First observedlistar_habilidades
    • First observedlistar_recomendacoes
    • First observedlistar_repositorios_github
    • First observedresumo_perfil

TDQS

A3.5/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a clearly distinct resource or action: experiences, skills, projects, summary, recommendations, GitHub repo list, and GitHub repo detail. The list-versus-detail distinction for GitHub is explicit, leaving no meaningful overlap.

Naming Consistency4/5

Six tools follow a consistent Portuguese verb_noun snake_case pattern (buscar_*, listar_*), and all use snake_case. The exception is 'resumo_perfil', a noun phrase that breaks the verb-first convention.

Tool Count5/5

Seven tools is well-scoped for a read-only professional profile server. Each tool earns its place by covering a distinct profile section or GitHub operation.

Completeness3/5

The surface covers summary, experiences, skills, projects, recommendations, and GitHub repositories, but omits common profile sections like education, certifications, and languages. These are notable gaps that could cause agent failures for users expecting full profile coverage.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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