mcpField
A
Adrian Capraru: profile and hiring

Adrian Capraru: profile and hiring

Local
adriancapraru.comBusiness & Marketing0Updated 2d ago

About Adrian Capraru: profile and hiring

adrian-capraru-mcp is a read-only profile server for MCP clients that answer questions about Adrian Capraru's work and hiring options. Its data is generated from the site's content, resume and published offers, so answers reflect those sources.

Key features

  1. 01Retrieve profile and career details
  2. 02List and inspect case studies
  3. 03Browse published services and prices
  4. 04Check availability status and update date
  5. 05Get contact routes and hiring guidance

Use cases

  1. 01Review Adrian's experience and case studies
  2. 02Explore published project offers
  3. 03Check whether Adrian is taking work
  4. 04Find the appropriate hiring contact route

MCP support

Exposes six read-only tools to MCP clients over stdio. It returns profile, case study, service, availability and contact information, without sending messages or booking calls.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository
Packages
mcpbadrian-capraru-mcp-1.1.1.mcpb

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

adrian-capraru-mcp

test

An agent-readable profile. A small Model Context Protocol server that lets Claude, ChatGPT, Cursor or any MCP client answer questions about Adrian Capraru, Head of AI & Automation, and hand a user the routes to hire him: who he is, what he has built and measured, what his published offers cost, whether he is taking work, and where to make contact.

Every answer comes from the data behind adriancapraru.com. A build script generates data/profile.json from the site's own content file, its JSON Resume and the published Upwork offers, so the server says what the site says and nothing else.

  • Registry: official MCP Registry, io.github.cadi27tech/adrian-capraru (registry entry), active since 27 Oct 2026
  • Transport: stdio. Runs with npx github:cadi27tech/adrian-capraru-mcp, or as the MCPB bundle attached to each release
  • Auth and network: none. No key, no account, no outbound call at runtime, nothing written
  • Side effects: none. how_to_hire returns contact routes; it never sends a message or books a call
System drawing: the website data passes a build script whose content rules can fail the build, producing a committed profile.json; an MCP client calls the stdio server, which reads profile.json and a hand-edited availability.json and answers with contact routes a person then uses. No keys and no network at runtime.

Tools

All six are read-only (readOnlyHint: true, openWorldHint: false).

ToolReturns
get_profilePositioning, summary, all 8 roles with highlights and key figures, location (Romania, EET) and remote terms, what he is open to, languages, education, skills, links
list_case_studiesThe 7 case studies on the site: slug, title, summary, headline figure, status, URL
get_case_studyOne case in full: client type, role, timeline, status, problem, what was built, measured results, stack, links. slug is an enum, so an unknown slug is refused rather than guessed
list_services12 fixed-price projects (3 tiers each, delivery days, what is included) and 3 consultations, as published on Upwork; prices are quoted on Upwork
check_availabilityThe status in availability.json, its update date, what he is open to and his time zone. A status note, not a calendar
how_to_hireContact page, Upwork profile, LinkedIn and CV PDF, what each route is for, and what to put in a first message

Then ask, for example: "Has Adrian Capraru shipped anything with Xero in production, and what would a HubSpot to Xero build cost?"

Connect

Node 20 or later. The first run installs the package from GitHub.

Claude Code

claude mcp add adrian-capraru -- npx -y github:cadi27tech/adrian-capraru-mcp

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "adrian-capraru": {
      "command": "npx",
      "args": ["-y", "github:cadi27tech/adrian-capraru-mcp"]
    }
  }
}

Or download adrian-capraru-mcp-1.1.1.mcpb from the latest release and open it: Claude Desktop installs bundles in one click.

Cursor (~/.cursor/mcp.json, or .cursor/mcp.json in a project)

{
  "mcpServers": {
    "adrian-capraru": {
      "command": "npx",
      "args": ["-y", "github:cadi27tech/adrian-capraru-mcp"]
    }
  }
}

On Windows, if the client cannot find npx, use "command": "cmd" with "args": ["/c", "npx", "-y", "github:cadi27tech/adrian-capraru-mcp"].

Any client, from a clone: npm ci, then node examples/call.mjs <tool> '<json arguments>' starts the server over stdio, calls one tool and prints what the agent reads back.

Verification

npm test: 10 of 10 pass; then a real get_case_study call over stdio returns the Xero prepayments case with its three results and its URL on the site

npm test starts the real server over stdio and calls every tool the way an MCP client does: exactly six tools and all read-only, the profile fields, all 7 case slugs, an unknown slug refused, 12 projects with three rising price tiers and 3 consultations, the availability file, the four contact routes, and two repository checks. CI runs it on Node 20 and 22 on every push, then calls how_to_hire from a clean install.

Design decisions

Generated, never typed. scripts/build-data.mjs imports the site's content.mjs, reads resume.json, lifts the "Open to" and "Where" copy from the contact page source and parses the published Upwork catalog and consultations. A wording change on the site reaches the server on the next build. If the contact page loses a section the script depends on, the build throws instead of shipping a gap.

Content rules that fail the build. scripts/rules.mjs lists what may never be published: partner names, superlatives, figures withheld on purpose, email addresses, first-person copy, hype words and any dash other than the ASCII hyphen. The build rewrites the few site sentences that carry such a fact, drops any list item still failing, then checks the whole output and refuses to write it if one rule still fails. The tests run the same rules over the data, the README and the changelog.

Availability is a file, not a calendar. availability.json holds a status, a sentence and a date, edited by hand and read on every call, so an edit applies without a restart. The server never claims a free slot it cannot see.

Contact stays human. The server hands back routes and a suggested brief. A person, or an agent acting for one, makes contact. Nothing here can send a message in Adrian's name or on a user's behalf.

Update the data

node scripts/build-data.mjs "<folder holding website/ and deliverables/upwork-v3/>"
npm test

To change availability, edit availability.json (status, summary, updated) and push. Clients running through npx pick it up on the next install; the registry bundle changes only with a release.

A new release: bump version in package.json, manifest.json and server.json, run npx @anthropic-ai/mcpb pack, attach the .mcpb to a GitHub release, put its SHA-256 and URL in server.json, then run the publish to MCP Registry workflow. It checks the hash and signs in with GitHub OIDC, so no secret is stored.

Licence

MIT. Adrian Capraru, adriancapraru.com. The drawing is generated with blueprint-svg.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.