Pro Evaluation System Agentic API
Hosted MCP · Streamable HTTP · Bearer eak_

Point an agent at PES & let it run the whole assessment.

Mint a key, paste one line into Claude Code, Cursor or Claude Desktop, and your agent self-discovers every tool it's authorized for — create a program, invite participants, author a survey, send mail, score, retrieve results. Reads are free; risky writes wait for a human.

claude / cursor — mcp config
// self-discovers tools filtered to your key's scopes
{
  "mcpServers": {
    "pes": {
      "command": "npx",
      "args": ["-y", "mcp-remote",
        "https://proevaluationsystem.com/_api/mcp/server.php",
        "--header", "Authorization: Bearer ${PES_API_KEY}"],
      "env": { "PES_API_KEY": "eak_…" }
    }
  }
}
42
tools across 8 categories
Free
reads & status never cost credits
HITL
9 risky writes gated by human approval
0→4
usage tiers, auto-promoted on spend
Get started

Three ways to call it

The hosted MCP server is self-describing: on connect, tools/list returns exactly the tools your key's scopes allow, each with its input schema. Prefer raw HTTP? Every tool is also a bearer-authed REST endpoint.

terminal
# one line — add the connector to Claude Code
claude mcp add --transport http pes \
  https://proevaluationsystem.com/_api/mcp/server.php \
  --header "Authorization: Bearer $PES_API_KEY"
# the dependency-free helper CLI
npx pes-agent whoami
npx pes-agent tools # list tools with cost / risk
npx pes-agent call read_results '{"evaluee_ref":"pes:evaluee/123"}'
# who am I? (free) — every tool is also raw REST
curl -s https://proevaluationsystem.com/_api/mcp_whoami.php \
  -H "Authorization: Bearer eak_…"

# a risky write returns 409 until approved (see Trust model)
curl -s https://proevaluationsystem.com/_api/mcp_mail_send_bulk.php \
  -H "Authorization: Bearer eak_…" \
  -d '{"gameid":1024,"mail_template_id":7,"select_all_participants":true}'
Trust model

Metered, scoped, and human-gated where it counts

An API key carries only the scopes you grant it, spends transparently in credits, and can never fire a destructive or mass action without a person signing off. Every call is audited.

Credits & tiers

Reads and status polls are free. Writes cost a few credits; mass actions multiply by recipient count. Accounts start on Free and auto-promote (Tier 1–4) as cumulative spend grows, lifting rate limits and monthly caps.

  • 0Reads, *:list, *:status, previews
  • 2–5Create / update a survey, program or template
  • 10Publish or delete (destructive)
  • ×NBulk mail & import — per recipient / row

What a key can't do

Guardrails are enforced server-side, not by the agent's good behavior:

  • scopeOnly the tools you granted appear in tools/list
  • tenantEvery id is bound to the key owner — no cross-tenant reads or writes
  • HITLMass mail, publish, delete & bulk import require an approval token
  • auditEvery call logged with scope, cost, and outcome
1

Agent calls a risky tool

e.g. mail_send_bulk. With no token, the server holds it and replies 409 approval_required with an approval_id — the token is never shown to the agent.

2

A human approves

The key owner reviews the exact payload in the Approvals inbox — or the emailed magic-link — and approves it, revealing a single-use, payload-bound token.

3

Agent re-calls, once

Re-issue the same call with approval_token. The server verifies the payload hash matches, runs it once, and consumes the token.

Reference

The tool catalog

All 42 tools, grouped by where they sit in the assessment lifecycle. The MCP tool name is the scope with : → _. Filter to see what's free, what writes, and what needs a human.

Filter