For agents
This site is built to be read by AI assistants as well as people. Everything below is public and needs no sign-in.
Connect
A remote MCP server over streamable HTTP:
https://api.edmarbarros.com/mcp
Tools
All tools are read-only except one, and that one only drafts.
site_help- What can be asked, with example questions.site_get_profile- Who I am, in one call.site_get_cv- The full CV, with optional filters.site_list_skills / site_get_skill- Skills, and the evidence behind each one.site_list_projects / site_get_project- Project write-ups.site_list_posts / site_get_post- Blog posts, as markdown.site_search- Ranked full-text search across all of the above.site_draft_message- Drafts a message to me. A person reviews it and sends it on the contact page.
Design choices
- Stateless: every request builds a fresh server and answers with plain JSON. No sessions, no streaming.
- Read-only: the tools read a static JSON export of this site. Nothing an assistant does can change it.
- A human stays in the loop: site_draft_message returns a link. The person reads the draft, passes a Turnstile check and sends it.
- Same content as the site, in English and Portuguese, so an assistant answers from my words and not from what a model remembers.
Without MCP
- Index of the JSON export: /api/index.json
- Plain-text summary for LLMs: /llms.txt
How the search is tested
The search is tested without any model. A set of real questions is run against the exact content the server serves, and each one must put the right result in the top 3. Questions about technologies I have not used must return nothing.
The eval also keeps a list of gaps it knows about, and fails when one is fixed so the note gets removed. Today there are none.