Adrian Capraru: profile and hiring

io.github.cadi27techPublished by GitHub account cadi27techv1.1.2Updated Oct 29, 2026

Ask about Adrian Capraru, Head of AI & Automation: case studies, services, availability, hiring.

VerifiedSTDIODesktop only

Overview

AI-generated overview

Read-only MCP server that lets an assistant answer questions about Adrian Capraru's profile, case studies, services, availability and hiring routes.

What you can do
  • Read the profile: positioning, roles, key figures, location, languages, skills and links
  • Browse and open case studies: list all seven, then fetch one in full by slug
  • Review published services: fixed-price projects with tiers and delivery days, plus consultations
  • Check availability status, its update date and time zone
  • Get hiring routes: contact page, Upwork, LinkedIn, CV and what to put in a first message
When to use it
Useful when someone wants an assistant to answer questions about Adrian Capraru as a contractor or hire, such as what he has built, what his published offers cost, whether he is taking work, and how to get in touch.
Requirements
Runs locally over stdio; Node 20 or later, with the package installed from GitHub on first run via npx, or the MCPB bundle for Claude Desktop. No account, API key or network call at runtime.
Before you install
All six tools are read-only and nothing is written or sent; the hiring tool only returns contact routes and cannot message anyone. Availability is a hand-edited status note, not a calendar, and prices are quoted on Upwork rather than in the server.

Installation

In SourceWeft

  1. Open Adrian Capraru: profile and hiring in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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

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

Claude Desktop (claude_desktop_config.json)

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)

json
{  "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

bash
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.

Source: README.md at commit 1362fdc

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.1.2LatestOct 29, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts