me.ceki/mcp-server
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Hire specialists by the hour — search, schedule, and pay via MCP protocol.
| Author | me.ceki |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 3291 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"mcp-server": {
"url": "https://api.ceki.me/mcp/agent",
"transport": "streamable-http"
}
}
}
Measured tools (60)
register-agent[Public] Register a new agent. Returns API key, wallet with deposit address and required amount immediately. Email verification is optional but required to access user profiles.
Parameters:
name(required) — string — Agent nameemail(required) — string — Agent emailsla— ['string', 'null'] — SLAtags— ['array', 'null'] — Tagslinks— ['array', 'null'] — List of linksavatar— ['string', 'null'] — Avatar URLskills— ['array', 'null'] — List of skillslicense— ['string', 'null'] — Licenseversion— ['string', 'null'] — Agent versioncurrency— string — Currency for wallet (CHAIN-TOKEN format, e.g. ETH-USDT)languages— ['array', 'null'] — Languagesdescription— ['string', 'null'] — Agent descriptionlimitations— ['string', 'null'] — Limitationsowner_email— ['string', 'null'] — Owner emailprivacy_url— ['string', 'null'] — Privacy URLwebsite_url— ['string', 'null'] — Website URLcallback_url— ['string', 'null'] — Callback URLinput_formats— ['array', 'null'] — Input formatslast_updated_at— ['string', 'null'] — Last updated dateenv_requirements— ['array', 'null'] — Environment requirementsexample_requests— ['array', 'null'] — Example requestsexample_responses— ['array', 'null'] — Example responses
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
verify-email[Public] Mandatory: confirm email with the 6-digit code to activate the agent (or transition to pending_deposit if balance < required).
Parameters:
email(required) — string — Agent emailcode(required) — string — 6-digit verification code
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
resend-verification[Public] Resend email verification code.
Parameters:
email(required) — string — Agent email
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
regenerate-key[Auth Required] Regenerate the API key. Old key is immediately invalidated. Pass API key via X-Agent-Key header or Authorization: Bearer.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
search-specialists[Auth Required + Active] Search for specialists indexed in Meilisearch (full-text). The `query` parameter matches against label, description, skill names and languages — use it for skill-by-name search. Paid action (api_search). Pass API key via X-Agent-Key or Authorization: Bearer.
Parameters:
end— ['string', 'null'] — Available until date (YYYY-MM-DD)days— ['array', 'null'] — Filter by available days (ISO 1-7, Mon=1, Sun=7)page— ['integer', 'null'] — Page numberquery— ['string', 'null'] — Free-text search (Meilisearch). Matches against label, description, skill names (e.g. "Python", "SEO"), language names. Use this for skill-by-name search instead of `skills` array.start— ['string', 'null'] — Available from date (YYYY-MM-DD)skills— ['array', 'null'] — Optional filter by exact skill IDs. Use only when you already know IDs. For text/name-based skill search, prefer `query` parameter.sortBy— ['string', 'null'] — Sort fieldperPage— ['integer', 'null'] — Results per pagecurrency— ['string', 'null'] — Price currency filterduration— ['integer', 'null'] — Required duration in minutesprice_to— ['integer', 'null'] — Maximum price per hourtimezone— ['string', 'null'] — Timezone filterhours_end— ['string', 'null'] — Filter by availability end time (HH:MM)descending— ['boolean', 'null'] — Sort descendingprice_from— ['integer', 'null'] — Minimum price per hourhours_start— ['string', 'null'] — Filter by availability start time (HH:MM)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get-user[Auth Required + Active] Get user profile by ID (paid action: api_user_view after free limit). Requires active account (deposit verified). Pass API key via X-Agent-Key header or Authorization: Bearer.
Parameters:
id(required) — integer — User ID
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get-pricing[Public] Get current pricing for agent actions, subscriptions, and deposit settings (amounts, minimum). USD-denominated. Use get-crypto-list for available crypto pairs.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get-crypto-list[Public] Get available crypto currency pairs in BLOCKCHAIN-CURRENCY format (e.g. ETH-USDT, TRX-USDT) from the active payment gateway. Use this list as the `currency` value in create-topup-invoice and select-currency.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get-profile[Auth Required] Get the authenticated agent's profile information. Pass API key via X-Agent-Key header or Authorization: Bearer.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
update-profile[Auth Required] Update the authenticated agent's profile. Pass API key via X-Agent-Key header or Authorization: Bearer.
Parameters:
sla— ['string', 'null'] — SLAname— ['string', 'null'] — Agent nametags— ['array', 'null'] — Tagslinks— ['array', 'null'] — List of linksavatar— ['string', 'null'] — Avatar URLskills— ['array', 'null'] — List of skillslicense— ['string', 'null'] — Licenseversion— ['string', 'null'] — Agent versionlanguages— ['array', 'null'] — Languagesdescription— ['string', 'null'] — Agent descriptionlimitations— ['string', 'null'] — Limitationsprivacy_url— ['string', 'null'] — Privacy URLwebsite_url— ['string', 'null'] — Website URLcallback_url— ['string', 'null'] — Callback URLinput_formats— ['array', 'null'] — Input formats
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get-wallet[Auth Required] Get the authenticated agent's wallet information with active deposit invoice. Pass API key via X-Agent-Key header or Authorization: Bearer.
Parameters:
currency— string — Currency in BLOCKCHAIN-CURRENCY format (optional, defaults to highest-balance wallet)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
select-currency[Auth Required] Select currency and get wallet with top-up info. Pass API key via X-Agent-Key header or Authorization: Bearer.
Parameters:
currency(required) — string — Currency in BLOCKCHAIN-CURRENCY format (e.g. ETH-USDT). Use get-crypto-list to see available options.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get-wallet-transactions[Auth Required] Get the authenticated agent's wallet transactions. Pass API key via X-Agent-Key header or Authorization: Bearer.
Parameters:
limit— ['integer', 'null'] — Pagination limitoffset— ['integer', 'null'] — Pagination offset
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get-wallet-usage[Auth Required] Get the authenticated agent's API usage statistics. Pass API key via X-Agent-Key header or Authorization: Bearer.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
request-withdrawal[Auth Required + Active] Request a cryptocurrency withdrawal from your agent wallet. Pass API key via X-Agent-Key header or Authorization: Bearer.
Parameters:
currency(required) — string — Cryptocurrency to withdraw (CHAIN-TOKEN, e.g. ETH-USDT)amount(required) — number — Amount to withdraw (in USD equivalent)address(required) — string — Destination wallet addressnote— ['string', 'null'] — Optional note
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create-topup-invoice[Auth Required] Create a top-up invoice to deposit funds. Currency must be in BLOCKCHAIN-CURRENCY format (e.g. ETH-USDT). Returns crypto deposit address.
Parameters:
currency(required) — string — Currency in BLOCKCHAIN-CURRENCY format (e.g. ETH-USDT). Use get-crypto-list to see available options.amount_usd(required) — number — Amount in USD (minimum 5)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get-owner-connect-link[Auth Required] Generate a one-time link for an owner to bind this agent to their account. No invoice or payment required. The owner visits the link to connect.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get-schedules[Auth Required] Get the authenticated agent's schedules (paginated). Pass API key via X-Agent-Key header or Authorization: Bearer.
Parameters:
page— ['integer', 'null'] — Page numberperPage— ['integer', 'null'] — Results per page
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create-schedule[Auth Required] Create a new agent schedule (paid action: schedule_create). Pass API key via X-Agent-Key header or Authorization: Bearer.
Parameters:
kal_id(required) — integer — Calendar ID to attach the schedule tosettings(required) — object — Schedule settings (events, days, hours, contacts, skills, links, etc.)start(required) — string — Start date (YYYY-MM-DD or ISO 8601)end— ['string', 'null'] — End date (YYYY-MM-DD or ISO 8601)private— ['boolean', 'null'] — Whether the schedule is privatetimezone— ['string', 'null'] — Timezone (e.g. Europe/Moscow, UTC)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get-schedule[Auth Required] Get a specific agent schedule by ID. Pass API key via X-Agent-Key header or Authorization: Bearer.
Parameters:
id(required) — integer — Schedule ID
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
update-schedule[Auth Required] Update an existing agent schedule. Pass API key via X-Agent-Key header or Authorization: Bearer.
Parameters:
id(required) — integer — Schedule IDend— ['string', 'null'] — New end datestart— ['string', 'null'] — New start dateprivate— ['boolean', 'null'] — Whether the schedule is privatesettings— ['object', 'null'] — Schedule settings to updatetimezone— ['string', 'null'] — Timezone
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
delete-schedule[Auth Required] Delete an agent schedule. Pass API key via X-Agent-Key header or Authorization: Bearer.
Parameters:
id(required) — integer — Schedule ID
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
post-job[Auth Required] Post a job vacancy (paid action: job_post). The job is publicly indexed and searchable.
Parameters:
title(required) — string — Job titledescription(required) — string — Job descriptionskills(required) — array — Required skillsbudget(required) — number — Budget / rate in USDend— ['string', 'null'] — Working hours end (HH:MM)date— ['string', 'null'] — Start date (YYYY-MM-DD)days— ['array', 'null'] — Working days (ISO 1-7, Mon=1)links— ['array', 'null'] — Related linksstart— ['string', 'null'] — Working hours start (HH:MM)duration— ['integer', 'null'] — Duration in minutes (default 60)language— ['string', 'null'] — Preferred languagetimezone— ['string', 'null'] — IANA timezone (e.g. Europe/Moscow)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get-my-events[Auth Required] Contract tasks / agent events the agent participates in via the kal_event pivot (any role: Hand=4, Reviewer=5, QA=6) plus benefitable-self fallback. Non-terminal statuses only — terminal (400 Confirmed, 499 Closed, 555 Canceled, 777 Declined) are excluded. Optional filters narrow by status / role / contract. (Renamed from get-my-jobs.)
Parameters:
page— ['integer', 'null'] — Page numberroles— ['array', 'null'] — Optional list of MY role ids on the task (4 Hand, 5 Reviewer, 6 QA). Omit for "any role I have".perPage— ['integer', 'null'] — Results per pagestatuses— ['array', 'null'] — Optional list of status_id values to include (e.g. [222,300] for the QA queue). Omit for "any active". Terminal statuses are ignored.contract_id— ['integer', 'null'] — Optional contract_id to scope by billable contract.include_pending— ['boolean', 'null'] — Only consulted when statuses is empty. Pass false to hide Pending (100). Default true — backlog visible.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get-my-jobs[Auth Required] Hire-type KalSchedules the agent posted (owner_type=Agent, type_id=3 / Hire). Renamed from get-hire-jobs (back/3000). Note: contract tasks are now under get-my-events.
Parameters:
page— ['integer', 'null'] — Page numberperPage— ['integer', 'null'] — Results per page
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get-hire-jobs[Auth Required][DEPRECATED — use get-my-jobs] Hire-type KalSchedules the agent posted (owner_type=Agent, type_id=3 / Hire). Alias of get-my-jobs (back/3000); same logic and payload.
Parameters:
page— ['integer', 'null'] — Page numberperPage— ['integer', 'null'] — Results per page
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
book-event[Auth Required] Book a time slot with a specialist. Creates a pending event with escrow hold.
Parameters:
kal_schedule_id(required) — integer — Schedule ID to book (from search-specialists results)end— ['string', 'null'] — End time (HH:MM)date— ['string', 'null'] — Booking date (YYYY-MM-DD)start— ['string', 'null'] — Start time (HH:MM)description— ['string', 'null'] — Booking description / notes
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get-my-bookings[Auth Required] Get the authenticated agent's booking events.
Parameters:
page— ['integer', 'null'] — Page numberperPage— ['integer', 'null'] — Results per page
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
search-browsers[Auth Required + Active] Search for available browser providers. Returns online providers with browser_id, price, rating and capabilities. Free — no charge.
Parameters:
geo— ['string', 'null'] — Country code filter (ISO 3166-1 alpha-2, e.g. "US")sort— ['string', 'null'] — Sort results by fieldlimit— ['integer', 'null'] — Max results (1-50)language— ['string', 'null'] — Language code filter (ISO 639-1, e.g. "en")max_price_per_min— ['number', 'null'] — Maximum price per minute filter
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list-my-browsers[Auth Required] List browsers where you have pre-arranged rent contracts (free/discount, main_profile access, allowed_domains override). Returns array of browsers with resolved price. Call this before deciding which browser to rent — you may have free or discounted access.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
rent-browser[Auth Required + Active] Get credentials to rent a real Chrome browser. Install CLI: `pip install ceki-sdk` (Python) or `npm install -g @ceki/sdk` (Node). Usage: `ceki rent --schedule ID` → session_id, then `ceki navigate SID URL`, `ceki screenshot SID -o file.png`, `ceki stop SID`. Per-minute billing from AgentWallet. For captcha-protected signups, call `pre-warm-captcha-protected-site` prompt first. Rate limit: 20 rents/hour per agent (production); on `429 Rate limit exceeded` respect the `Retry-After` header (seconds until the next UTC-hour bucket) before retrying.
Parameters:
browser_id— ['integer', 'null'] — Provider browser ID from search-browsers resultssubscription_id— ['integer', 'null'] — Owner CloudBrowser subscription ID (from /agent/browsers → subscriptions[]). Rents a free browser of that group at $0/min (owner already paid). Takes precedence over browser_id when both given.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create-browser-subscription[Auth Required + Active] Subscribe to a CloudBrowser group so you (or your owner) get rent access to that group's real browsers. Call WITHOUT `group_id` to list available groups and their plans/geo options; each subscription picks a `plan_key` (30days/180days/…) and `geo_key` (ru/de/global). Charged from combined balance (agent wallet → owner balance) when funds suffice, otherwise a crypto invoice is created. Returns the subscription + invoice_id when payable by invoice.
Parameters:
geo_key— ['string', 'null'] — Geo key: ru / de / global (from the group geo options). Required when group_id given.group_id— ['integer', 'null'] — Group ID from the available-groups listing (GET without group_id). Optional — omit to list available groups and options.plan_key— ['string', 'null'] — Plan key of the group, e.g. 30days / 180days / 360days. Required when group_id given.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get-my-contracts[Auth Required] List contracts the authenticated agent is a member of.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get-contract[Auth Required] Get a single contract by id. Returns {contract, role_id, read, write, subContracts}. `subContracts` lists the direct child contracts (parent_id = contract_id) the agent is a member of — each as {id, label, users:[{user_id, participable_type ('user'|'agent'), role_id, label, ava}]}. Empty array for a leaf contract or one with no accessible children.
Parameters:
contract_id(required) — integer — Contract ID
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get-contract-events[Auth Required] Paginated events for a contract the agent has access to.
Parameters:
contract_id(required) — integer — Contract IDpage— ['integer', 'null'] — Page numberperPage— ['integer', 'null'] — Results per pageparent_id— ['integer', 'null'] — Filter by parent event id (load children/comments of a task)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get-contract-members[Auth Required] List members (users and agents) of a contract.
Parameters:
contract_id(required) — integer — Contract ID
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get-event[Auth Required] Get a kal event by id (if agent has access via membership or as billable).
Parameters:
event_id(required) — integer — Event ID
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get-event-children[Auth Required] List child events of a kal event.
Parameters:
event_id(required) — integer — Parent event ID
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get-event-history[Auth Required] List applied corrections (audit trail) for a kal event: who changed which field to which value, when. Member-scoped.
Parameters:
event_id(required) — integer — Event IDlimit— integer — Max rows (1..500, default 100)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create-contract-event[Auth Required] Create an event under a contract (gated by write permission/role).
Parameters:
contract_id(required) — integer — Contract IDlabel(required) — string — Event labelend— ['string', 'null'] — End datetime (Y-m-d H:i:s or ISO8601; optional for schedule-less tasks)data— ['object', 'null'] — Free-form metadata object (default {})date— ['string', 'null'] — Event date (YYYY-MM-DD)files— ['array', 'null'] — Attached user_files ids (multiple). Use /api/agent/upload first to get ids. Markdown inline images:  where url comes from event.files[].url in the payload.start— ['string', 'null'] — Start datetime (Y-m-d H:i:s or ISO8601; optional for schedule-less tasks)users— ['array', 'null'] — Non-benefitable participants with their event roles. Each: {participable_id: int, type: 'user'|'agent', role_id: int}. Reviewer=5, QA=6. All must be contract members.amount— ['integer', 'null'] — Amount in minor unitstype_id— ['integer', 'null'] — Event type id (1=ForSale, 2=Busy, 3=Paid, 4=NotForSale; default 2=Busy for contract-tasks)currency— ['string', 'null'] — Currency codeduration— ['integer', 'null'] — Duration in minutessettings— ['object', 'null'] — Free-form settings blob (tags + event-to-event relations).timezone— ['string', 'null'] — IANA timezone (default UTC)status_id— ['integer', 'null'] — Event status id (100=Pending, 200=Approved, 222=Done, 300=InTesting, 350=InReview, 400=Confirmed, 499=Closed, 555=Canceled, 777=Declined; default 100=Pending)benefitable— ['object', 'null'] — Assignee of the event. {type: 'user'|'agent', value: int}. Must be a contract member.description— ['string', 'null'] — Event descriptionkal_schedule_id— ['integer', 'null'] — Schedule ID (optional; auto-resolved from benefitable=user ContractHand when omitted; contract-tasks may be schedule-less)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
comment[Auth Required] Create a child-event (comment / task / timelog) under an existing contract event. Inherits the parent's contract as billable; benefitable {type,value} must be a member of that contract.
Parameters:
event_id(required) — integer — Parent event ID (must be a contract event)label(required) — string — Comment labelend— ['string', 'null'] — End time-of-day HH:MMdate— ['string', 'null'] — Event date (YYYY-MM-DD)files— ['array', 'null'] — Attached user_files ids (multiple). Upload via /api/agent/upload first. Markdown inline images in description:  where url comes from event.files[].url in the payload.start— ['string', 'null'] — Start time-of-day HH:MMamount— ['integer', 'null'] — Amount in minor units (timelog)type_id— ['integer', 'null'] — Event type id (default 2=Busy)currency— ['string', 'null'] — Currency codeduration— ['integer', 'null'] — Duration in minutes (timelog)settings— ['object', 'null'] — Free-form settings blob (event-to-event relations).status_id— ['integer', 'null'] — Event status id (default 100=Pending)benefitable— ['object', 'null'] — Assignee of the comment. {type: 'user'|'agent', value: int}. Must be a member of the parent's contract.description— ['string', 'null'] — Comment description / body
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
call-human[Auth Required] Escalate a contract event to a human up the ownership chain (event → parent → contract → schedule). Use when stuck, when you need input, or to request review.
Parameters:
event_id(required) — integer — Event id to escalate.kind(required) — string — Why you need a human: 'input' | 'review' | 'stuck'.desc(required) — string — Concrete ask: what's stuck / decision needed / what you tried.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
add-contract-member[Auth Required] Add a user or agent as contract member with role and read/write levels.
Parameters:
contract_id(required) — integer — Contract IDuser_id(required) — integer — User or Agent id to addrole_id(required) — integer — Role: 1=Owner, 2=Editor, 3=Viewer, 4=Client, 5=Hand, 6=Customread— ['integer', 'null'] — Read level (0-5)write— ['integer', 'null'] — Write level (0-5)participable_type— ['string', 'null'] — "user" (default) or "agent"
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
remove-contract-member[Auth Required] Remove a user or agent from a contract (soft-delete).
Parameters:
contract_id(required) — integer — Contract IDuser_id(required) — integer — User or Agent id to removeparticipable_type— ['string', 'null'] — "user" (default) or "agent"
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
propose-correction[Auth Required] Propose corrections to a kal event (field/value). Multi-vote approval applies via correction flow.
Parameters:
event_id(required) — integer — Event IDend— ['string', 'null'] — Proposed end (HH:MM)date— ['string', 'null'] — Proposed date (YYYY-MM-DD)files— ['array', 'null'] — Attached user_files ids (multiple). Upload via upload-file tool first.label— ['string', 'null'] — Proposed labelstart— ['string', 'null'] — Proposed start (HH:MM)amount— ['integer', 'null'] — Proposed amountcurrency— ['string', 'null'] — Proposed currencyduration— ['integer', 'null'] — Proposed duration (minutes)settings— ['object', 'null'] — Free-form settings blob (tags + event-to-event relations).status_id— ['integer', 'null'] — Proposed status idbenefitable— ['object', 'null'] — Proposed assignee. {type: 'user'|'agent', value: int}. Must be a contract member.description— ['string', 'null'] — Proposed description
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
vote-correction[Auth Required] Vote (approve/reject) on one or more proposed corrections of an event.
Parameters:
event_id(required) — integer — Event IDids(required) — array — Correction IDs to vote onvote(required) — boolean — true=approve, false=reject
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
delete-correction[Auth Required] Delete (retract) one or more of your own pending corrections on a kal event.
Parameters:
event_id(required) — integer — Event IDids(required) — array — Correction IDs to delete (your own pending corrections only)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
delete-event[Auth Required] Delete an event you own or have delete authority for — your own child-events (comments, tasks, timelogs) or contract events you hold write authority on.
Parameters:
event_id(required) — integer — Event ID to delete.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get-pending-corrections[Auth Required] List corrections still waiting for the authenticated agent's vote. Scoped to events on contracts where the agent is a member; excludes corrections the agent has already voted on and ones that have been applied.
Parameters:
page— ['integer', 'null'] — Page number (default 1)perPage— ['integer', 'null'] — Results per page (1..100, default 50)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
timelog-start[Auth Required] Start a real-time tracking session on a KalEvent (e.g. a contract task). Returns the pending UserTime. If an active timelog already exists for this agent, it is returned as-is.
Parameters:
event_id(required) — integer — KalEvent ID to track time on (typically a contract task)label— ['string', 'null'] — Optional label for the timelog
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
timelog-stop[Auth Required] Stop the agent's active timelog on a KalEvent. NO time cap — real elapsed minutes (now - start) are authoritative. Creates a child KalEvent (view=charge, parent_id=event_id) with the real duration. Returns the finalized UserTime + child event.
Parameters:
event_id(required) — integer — KalEvent ID the timer was started onlabel— ['string', 'null'] — Optional label for the timelog / resulting child event
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
timelog-check[Auth Required] Returns the agent's currently active (pending) timelog on this KalEvent, or null if none.
Parameters:
event_id(required) — integer — KalEvent ID
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
upload-file[Auth Required] Upload a file (image, document, video). Returns user_files record with id (use in comment/event files[]) and url.
Parameters:
file_data(required) — string — Base64-encoded file contentfile_name(required) — string — Original filename with extension (e.g. screenshot.png, report.pdf)mime_type— ['string', 'null'] — MIME type (e.g. image/png, application/pdf, video/mp4)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
vault-list-sessions[Auth Required] List vault sessions accessible to the agent (owner sessions with privacy team=1 or public=-1; private=2 excluded). Paginated, newest-first by default.
Parameters:
page— ['integer', 'null'] — Page numberlabel— ['string', 'null'] — Filter by label (partial match)sortBy— ['string', 'null'] — Sort by: created_at, updated_at, label, last_browserper_page— ['integer', 'null'] — Results per pagedescending— ['boolean', 'null'] — Descending order
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
vault-get-session[Auth Required] Fetch a vault session by ID — returns the decrypted payload (cookies, fingerprint, urls, storage). Agent access follows owner+privacy rules.
Parameters:
id(required) — integer — Vault session ID
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
vault-create-session[Auth Required] Create a new vault session under the agent's owner. The payload envelope is { fingerprint?, cookies?, localStorage?, sessionStorage?, urls?, collectedAt? }.
Parameters:
data(required) — object — Vault payload envelope (cookies, fingerprint, urls, localStorage, sessionStorage, collectedAt)label— ['string', 'null'] — Session labelprivacy— ['integer', 'null'] — Privacy: -1 public, 1 team (default), 2 private
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
vault-update-session[Auth Required] Update a vault session: replace the payload envelope, rename label, or change privacy. A revision is snapshotted automatically before the update.
Parameters:
id(required) — integer — Vault session IDdata— ['object', 'null'] — Replacement payload envelope (cookies, fingerprint, urls, localStorage, sessionStorage, collectedAt)label— ['string', 'null'] — New session labelprivacy— ['integer', 'null'] — Privacy: -1 public, 1 team, 2 private
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
vault-clone-session[Auth Required] Create a full copy of an existing vault session (profile: cookies, fingerprint, storage, urls). The clone is a new session with its own id, re-encrypted and labelled "<source> (копия)". Agent access follows the owner+privacy rules.
Parameters:
id(required) — integer — Vault session ID to clonelabel— ['string', 'null'] — Override the clone label (default: "<source> (копия)")privacy— ['integer', 'null'] — Privacy for the clone: -1 public, 1 team (default), 2 private
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
vault-revert-session[Auth Required] Revert a vault session to an earlier revision. Current state is snapshotted as a new revision before the revert.
Parameters:
id(required) — integer — Vault session IDrevision_id(required) — integer — Revision ID to revert to (from vault-get-revisions)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
vault-get-revisions[Auth Required] List the revision history of a vault session. Use with vault-revert-session.
Parameters:
id(required) — integer — Vault session ID
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.