Skip to main content

MCP Tools

Profy runs a remote MCP (Model Context Protocol) server so you can go from distillation to configuration to publishing to monetisation inside Codex, Cursor, Claude Code, or any MCP-capable IDE — without leaving the editor.
Transport is Streamable HTTP and stateless (no session management).

Setup

.mcp.json
Authentication reuses the platform login session in two forms:
  • Authorization: Bearer <token>
  • Browser cookie (for embedded-browser IDE flows)
Calling an identity-bound tool while unauthenticated errors out. It does not silently degrade to anonymous access.

Full tool table

22 tools, all thin proxies over existing platform services with no independent business logic.

Identity (2)

apply_creator enters human review. The outcome arrives by in-app notification; there is nothing to poll on the MCP side.

Agent configuration (4)

update_expert covers basic metadata only. Prompt layers (GUARD / persona / soul / agent), subagents, and case demos are not on the MCP surface — they are either intellectual property or structurally too intricate to edit blind from an IDE. Those go through Studio.

Skills (3)

install_skill is a stub and installs nothing.The current implementation writes a log line and returns {"success": true, "installed": "<skillName>"}; the installation service is not wired. The call succeeds, the response says success, and list_expert_skills afterwards shows no change.This is the most dangerous defect shape — a failure wearing a success mask. You get no error, only confusion about why the skill has no effect. Install skills through Studio or POST /api/expert-skills/install.

Billing and publishing (3)

set_billing takes billingType as METERED | ONE_TIME, but neither name maps to the real billing model:
  • METERED → writes price 0 → the agent becomes free
  • ONE_TIME → writes price → the agent becomes unlock-on-purchase
The platform has only FREE and UNLOCK; there is no metered agent. So passing METERED expecting usage-based charging yields a fully free agent. This is naming drift between the MCP surface and the underlying model; the underlying model is authoritative.
freeTrialPerUser defaults to 3 and allowTrial defaults to true. Full price and trial constraints are in Pricing and Billing. publish_expert submits for review rather than going live; a published agent stays online while its new version queues.

Distillation (2)

Distillation is multi-turn: start_distillation returns a sessionId, and every subsequent answer goes through continue_distillation carrying that id. Both tools call the invoke endpoint through an SSE collector internally, folding a stream into one synchronous return — so a single call can take a while. materials carries file contents directly (not paths), so local files in your IDE feed distillation without a separate upload.

Testing (2)

test_expert really executes and really bills. For a free look, use open_expert_chat and try it in the browser. It returns a URL only; whether to open a browser is the IDE’s decision.

Self-evolution (3)

accept_evolution takes effect immediately with no re-review — skill documents are read at runtime. That is also why you should read the suggestion before accepting. The mechanism is in Self-Evolution.

Earnings (2)

browse_marketplace is the only tool in the table that does not require an identity.

A typical flow

Building an agent from scratch inside your IDE:

Boundaries and failure modes

Verify your setup

Have the model call list_my_experts once. A returned list proves both auth and transport work; an unauthenticated error means the token never arrived. If you are unsure whether tools were discovered, check that the profy entry in your IDE’s MCP panel lists 22 tools. A wrong count usually means the transport was configured as stdio instead of streamable-http.

Endpoint Reference

The equivalent REST surface

Distillation

How distillation works

Self-Evolution

How to read evolution suggestions

Pricing and Billing

Real price and trial constraints
Verified 2026-08-11. Sources: services/core/src/routes/mcp/tools/index.ts (22 registerTool calls), services/core/src/routes/mcp/index.ts (transport), services/core/src/routes/mcp/auth.ts (auth).