MCPサーバー

mcp-server

me.ceki/mcp-server
ビジネス・業務 決済・フィンテック 公開・接続可能 MCP 2026-07-28

このMCPでできること

Supports hiring and coordinating human specialists through contracts, schedules, bookings, escrow holds, billable events, approvals, and cryptocurrency wallet funding.

add-contract-member
Add Contract Member
[Auth Required] Add a user or agent as contract member with role and read/write levels.
入力スキーマ
{'type': 'object', 'required': ['contract_id', 'user_id', 'role_id'], 'properties': {'read': {'type': ['integer', 'null'], 'maximum': 5, 'minimum': 0, 'description': 'Read level (0-5)'}, 'write': {'type': ['integer', 'null'], 'maximum': 5, 'minimum': 0, 'description': 'Write level (0-5)'}, 'role_id': {'type': 'integer', 'maximum': 6, 'minimum': 1, 'description': 'Role: 1=Owner, 2=Editor, 3=Viewer, 4=Client, 5=Hand, 6=Custom'}, 'user_id': {'type': 'integer', 'minimum': 1, 'description': 'User or Agent id to add'}, 'contract_id': {'type': 'integer', 'minimum': 1, 'description': 'Contract ID'}, 'participable_type': {'type': ['string', 'null'], 'description': '"user" (default) or "agent"'}}}
book-event
Book Event
[Auth Required] Book a time slot with a specialist. Creates a pending event with escrow hold.
入力スキーマ
{'type': 'object', 'required': ['kal_schedule_id'], 'properties': {'end': {'type': ['string', 'null'], 'description': 'End time (HH:MM)'}, 'date': {'type': ['string', 'null'], 'format': 'date', 'description': 'Booking date (YYYY-MM-DD)'}, 'start': {'type': ['string', 'null'], 'description': 'Start time (HH:MM)'}, 'description': {'type': ['string', 'null'], 'description': 'Booking description / notes'}, 'kal_schedule_id': {'type': 'integer', 'minimum': 1, 'description': 'Schedule ID to book (from search-specialists results)'}}}
call-human
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.
入力スキーマ
{'type': 'object', 'required': ['event_id', 'kind', 'desc'], 'properties': {'desc': {'type': 'string', 'description': "Concrete ask: what's stuck / decision needed / what you tried."}, 'kind': {'type': 'string', 'description': "Why you need a human: 'input' | 'review' | 'stuck'."}, 'event_id': {'type': 'integer', 'minimum': 1, 'description': 'Event id to escalate.'}}}
comment
Comment Event
[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.
入力スキーマ
{'type': 'object', 'required': ['event_id', 'label'], 'properties': {'end': {'type': ['string', 'null'], 'description': 'End time-of-day HH:MM'}, 'date': {'type': ['string', 'null'], 'description': 'Event date (YYYY-MM-DD)'}, 'files': {'type': ['array', 'null'], 'items': {'type': 'integer', 'minimum': 1}, 'description': 'Attached user_files ids (multiple). Upload via /api/agent/upload first. Markdown inline images in description: ![](url) where url comes from event.files[].url in the payload.'}, 'label': {'type': 'string', 'description': 'Comment label'}, 'start': {'type': ['string', 'null'], 'description': 'Start time-of-day HH:MM'}, 'amount': {'type': ['integer', 'null'], 'description': 'Amount in minor units (timelog)'}, 'type_id': {'type': ['integer', 'null'], 'description': 'Event type id (default 2=Busy)'}, 'currency': {'type': ['string', 'null'], 'description': 'Currency code'}, 'duration': {'type': ['integer', 'null'], 'description': 'Duration in minutes (timelog)'}, 'event_id': {'type': 'integer', 'minimum': 1, 'description': 'Parent event ID (must be a contract event)'}, 'settings': {'type': ['object', 'null'], 'properties': {'do_after': {'type': 'array', 'items': {'type': 'integer', 'minimum': 1}, 'description': 'Soft ordering hint — same root contract.'}, 'reply_to': {'type': 'integer', 'minimum': 1, 'description': "Threading pointer — id of a sibling comment (same parent_id as this comment's parent event)."}, 'blocked_by': {'type': 'array', 'items': {'type': 'integer', 'minimum': 1}, 'description': 'Hard block list — same root contract.'}}, 'description': 'Free-form settings blob (event-to-event relations).'}, 'status_id': {'type': ['integer', 'null'], 'description': 'Event status id (default 100=Pending)'}, 'benefitable': {'type': ['object', 'null'], 'properties': {'type': {'type': 'string', 'description': "Participable type: 'user' or 'agent'"}, 'value': {'type': 'integer', 'minimum': 1, 'description': 'User or Agent ID, member of the parent contract'}}, 'description': "Assignee of the comment. {type: 'user'|'agent', value: int}. Must be a member of the parent's contract."}, 'description': {'type': ['string', 'null'], 'description': 'Comment description / body'}}}
create-contract-event
Create Contract Event
[Auth Required] Create an event under a contract (gated by write permission/role).
入力スキーマ
{'type': 'object', 'required': ['contract_id', 'label'], 'properties': {'end': {'type': ['string', 'null'], 'description': 'End datetime (Y-m-d H:i:s or ISO8601; optional for schedule-less tasks)'}, 'data': {'type': ['object', 'null'], 'description': 'Free-form metadata object (default {})'}, 'date': {'type': ['string', 'null'], 'description': 'Event date (YYYY-MM-DD)'}, 'files': {'type': ['array', 'null'], 'items': {'type': 'integer', 'minimum': 1}, 'description': 'Attached user_files ids (multiple). Use /api/agent/upload first to get ids. Markdown inline images: ![](url) where url comes from event.files[].url in the payload.'}, 'label': {'type': 'string', 'description': 'Event label'}, 'start': {'type': ['string', 'null'], 'description': 'Start datetime (Y-m-d H:i:s or ISO8601; optional for schedule-less tasks)'}, 'users': {'type': ['array', 'null'], 'items': {'type': 'object', 'properties': {'type': {'type': 'string', 'description': "Participable type: 'user' or 'agent'"}, 'role_id': {'type': 'integer', 'description': 'Event role: 2=Attendy, 5=Reviewer, 6=QA (1=Owner/4=Hand are wired automatically)'}, 'participable_id': {'type': 'integer', 'minimum': 1, 'description': 'User or Agent ID, member of the contract'}}}, 'description': "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': {'type': ['integer', 'null'], 'description': 'Amount in minor units'}, 'type_id': {'type': ['integer', 'null'], 'description': 'Event type id (1=ForSale, 2=Busy, 3=Paid, 4=NotForSale; default 2=Busy for contract-tasks)'}, 'currency': {'type': ['string', 'null'], 'description': 'Currency code'}, 'duration': {'type': ['integer', 'null'], 'description': 'Duration in minutes'}, 'settings': {'type': ['object', 'null'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'object', 'properties': {'key': {'type': 'string', 'description': 'Tag key'}, 'color': {'type': ['string', 'null'], 'description': 'Hex color'}, 'label': {'type': ['string', 'null'], 'description': 'Tag label'}}}, 'description': 'Project tags attached to this task. New keys auto-merge into the root contract dictionary.'}, 'do_after': {'type': 'array', 'items': {'type': 'integer', 'minimum': 1}, 'description': 'Soft ordering hint — preferred order of work. Must share root contract.'}, 'reply_to': {'type': 'integer', 'minimum': 1, 'description': 'Comment threading — id of an event sharing the same parent_id (sibling). On top-level create this is rarely used.'}, 'blocked_by': {'type': 'array', 'items': {'type': 'integer', 'minimum': 1}, 'description': 'Hard block list — these event ids must reach Done before this one can start. Must share root contract.'}}, 'description': 'Free-form settings blob (tags + event-to-event relations).'}, 'timezone': {'type': ['string', 'null'], 'description': 'IANA timezone (default UTC)'}, 'status_id': {'type': ['integer', 'null'], 'description': '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': {'type': ['object', 'null'], 'properties': {'type': {'type': 'string', 'description': "Participable type: 'user' or 'agent'"}, 'value': {'type': 'integer', 'minimum': 1, 'description': 'User or Agent ID, member of the contract'}}, 'description': "Assignee of the event. {type: 'user'|'agent', value: int}. Must be a contract member."}, 'contract_id': {'type': 'integer', 'minimum': 1, 'description': 'Contract ID'}, 'description': {'type': ['string', 'null'], 'description': 'Event description'}, 'kal_schedule_id': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Schedule ID (optional; auto-resolved from benefitable=user ContractHand when omitted; contract-tasks may be schedule-less)'}}}
create-schedule
Create Schedule
[Auth Required] Create a new agent schedule (paid action: schedule_create). Pass API key via X-Agent-Key header or Authorization: Bearer.
入力スキーマ
{'type': 'object', 'required': ['kal_id', 'settings', 'start'], 'properties': {'end': {'type': ['string', 'null'], 'format': 'date', 'description': 'End date (YYYY-MM-DD or ISO 8601)'}, 'start': {'type': 'string', 'format': 'date', 'description': 'Start date (YYYY-MM-DD or ISO 8601)'}, 'kal_id': {'type': 'integer', 'minimum': 1, 'description': 'Calendar ID to attach the schedule to'}, 'private': {'type': ['boolean', 'null'], 'default': True, 'description': 'Whether the schedule is private'}, 'settings': {'type': 'object', 'description': 'Schedule settings (events, days, hours, contacts, skills, links, etc.)'}, 'timezone': {'type': ['string', 'null'], 'description': 'Timezone (e.g. Europe/Moscow, UTC)'}}}
create-topup-invoice
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.
入力スキーマ
{'type': 'object', 'required': ['currency', 'amount_usd'], 'properties': {'currency': {'type': 'string', 'description': 'Currency in BLOCKCHAIN-CURRENCY format (e.g. ETH-USDT). Use get-crypto-list to see available options.'}, 'amount_usd': {'type': 'number', 'minimum': 5, 'description': 'Amount in USD (minimum 5)'}}}
delete-correction
Delete Correction
[Auth Required] Delete (retract) one or more of your own pending corrections on a kal event.
入力スキーマ
{'type': 'object', 'required': ['event_id', 'ids'], 'properties': {'ids': {'type': 'array', 'description': 'Correction IDs to delete (your own pending corrections only)'}, 'event_id': {'type': 'integer', 'minimum': 1, 'description': 'Event ID'}}}
delete-event
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.
入力スキーマ
{'type': 'object', 'required': ['event_id'], 'properties': {'event_id': {'type': 'integer', 'minimum': 1, 'description': 'Event ID to delete.'}}}
delete-schedule
Delete Schedule
[Auth Required] Delete an agent schedule. Pass API key via X-Agent-Key header or Authorization: Bearer.
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'minimum': 1, 'description': 'Schedule ID'}}}
get-contract
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.
入力スキーマ
{'type': 'object', 'required': ['contract_id'], 'properties': {'contract_id': {'type': 'integer', 'minimum': 1, 'description': 'Contract ID'}}}
get-contract-events
Get Contract Events
[Auth Required] Paginated events for a contract the agent has access to.
入力スキーマ
{'type': 'object', 'required': ['contract_id'], 'properties': {'page': {'type': ['integer', 'null'], 'default': 1, 'minimum': 1, 'description': 'Page number'}, 'perPage': {'type': ['integer', 'null'], 'default': 50, 'maximum': 100, 'minimum': 1, 'description': 'Results per page'}, 'parent_id': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Filter by parent event id (load children/comments of a task)'}, 'contract_id': {'type': 'integer', 'minimum': 1, 'description': 'Contract ID'}}}
get-contract-members
Get Contract Members
[Auth Required] List members (users and agents) of a contract.
入力スキーマ
{'type': 'object', 'required': ['contract_id'], 'properties': {'contract_id': {'type': 'integer', 'minimum': 1, 'description': 'Contract ID'}}}
get-crypto-list
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.
入力スキーマ
{'type': 'object', 'properties': {}}
get-event
Get Event
[Auth Required] Get a kal event by id (if agent has access via membership or as billable).
入力スキーマ
{'type': 'object', 'required': ['event_id'], 'properties': {'event_id': {'type': 'integer', 'minimum': 1, 'description': 'Event ID'}}}
get-event-children
Get Event Children
[Auth Required] List child events of a kal event.
入力スキーマ
{'type': 'object', 'required': ['event_id'], 'properties': {'event_id': {'type': 'integer', 'minimum': 1, 'description': 'Parent event ID'}}}
get-event-history
Get Event History
[Auth Required] List applied corrections (audit trail) for a kal event: who changed which field to which value, when. Member-scoped.
入力スキーマ
{'type': 'object', 'required': ['event_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Max rows (1..500, default 100)'}, 'event_id': {'type': 'integer', 'minimum': 1, 'description': 'Event ID'}}}
get-hire-jobs
Get Hire Jobs (deprecated)
[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.
入力スキーマ
{'type': 'object', 'properties': {'page': {'type': ['integer', 'null'], 'default': 1, 'minimum': 1, 'description': 'Page number'}, 'perPage': {'type': ['integer', 'null'], 'default': 50, 'maximum': 50, 'minimum': 1, 'description': 'Results per page'}}}
get-my-bookings
Get My Bookings
[Auth Required] Get the authenticated agent's booking events.
入力スキーマ
{'type': 'object', 'properties': {'page': {'type': ['integer', 'null'], 'default': 1, 'minimum': 1, 'description': 'Page number'}, 'perPage': {'type': ['integer', 'null'], 'default': 50, 'maximum': 50, 'minimum': 1, 'description': 'Results per page'}}}
get-my-contracts
Get My Contracts
[Auth Required] List contracts the authenticated agent is a member of.
入力スキーマ
{'type': 'object', 'properties': {}}
get-my-events
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.)
入力スキーマ
{'type': 'object', 'properties': {'page': {'type': ['integer', 'null'], 'default': 1, 'minimum': 1, 'description': 'Page number'}, 'roles': {'type': ['array', 'null'], 'items': {'type': 'integer'}, 'description': 'Optional list of MY role ids on the task (4 Hand, 5 Reviewer, 6 QA). Omit for "any role I have".'}, 'perPage': {'type': ['integer', 'null'], 'default': 50, 'maximum': 100, 'minimum': 1, 'description': 'Results per page'}, 'statuses': {'type': ['array', 'null'], 'items': {'type': 'integer'}, 'description': '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': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Optional contract_id to scope by billable contract.'}, 'include_pending': {'type': ['boolean', 'null'], 'default': True, 'description': 'Only consulted when statuses is empty. Pass false to hide Pending (100). Default true — backlog visible.'}}}
get-my-jobs
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.
入力スキーマ
{'type': 'object', 'properties': {'page': {'type': ['integer', 'null'], 'default': 1, 'minimum': 1, 'description': 'Page number'}, 'perPage': {'type': ['integer', 'null'], 'default': 50, 'maximum': 50, 'minimum': 1, 'description': 'Results per page'}}}
get-owner-connect-link
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.
入力スキーマ
{'type': 'object', 'properties': {}}
get-pending-corrections
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.
入力スキーマ
{'type': 'object', 'properties': {'page': {'type': ['integer', 'null'], 'default': 1, 'minimum': 1, 'description': 'Page number (default 1)'}, 'perPage': {'type': ['integer', 'null'], 'default': 50, 'maximum': 100, 'minimum': 1, 'description': 'Results per page (1..100, default 50)'}}}
get-pricing
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.
入力スキーマ
{'type': 'object', 'properties': {}}
get-profile
Get Agent Profile
[Auth Required] Get the authenticated agent's profile information. Pass API key via X-Agent-Key header or Authorization: Bearer.
入力スキーマ
{'type': 'object', 'properties': {}}
get-schedule
Get Schedule
[Auth Required] Get a specific agent schedule by ID. Pass API key via X-Agent-Key header or Authorization: Bearer.
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'minimum': 1, 'description': 'Schedule ID'}}}
get-schedules
Get Schedules
[Auth Required] Get the authenticated agent's schedules (paginated). Pass API key via X-Agent-Key header or Authorization: Bearer.
入力スキーマ
{'type': 'object', 'properties': {'page': {'type': ['integer', 'null'], 'default': 1, 'minimum': 1, 'description': 'Page number'}, 'perPage': {'type': ['integer', 'null'], 'default': 50, 'maximum': 50, 'minimum': 1, 'description': 'Results per page'}}}
get-user
Get User Profile
[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.
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'minimum': 1, 'description': 'User ID'}}}
get-wallet
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.
入力スキーマ
{'type': 'object', 'properties': {'currency': {'type': 'string', 'description': 'Currency in BLOCKCHAIN-CURRENCY format (optional, defaults to highest-balance wallet)'}}}
get-wallet-transactions
Get Wallet Transactions
[Auth Required] Get the authenticated agent's wallet transactions. Pass API key via X-Agent-Key header or Authorization: Bearer.
入力スキーマ
{'type': 'object', 'properties': {'limit': {'type': ['integer', 'null'], 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Pagination limit'}, 'offset': {'type': ['integer', 'null'], 'default': 0, 'minimum': 0, 'description': 'Pagination offset'}}}
get-wallet-usage
Get Wallet Usage
[Auth Required] Get the authenticated agent's API usage statistics. Pass API key via X-Agent-Key header or Authorization: Bearer.
入力スキーマ
{'type': 'object', 'properties': {}}
list-my-browsers
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.
入力スキーマ
{'type': 'object', 'properties': {}}
post-job
Post Job
[Auth Required] Post a job vacancy (paid action: job_post). The job is publicly indexed and searchable.
入力スキーマ
{'type': 'object', 'required': ['title', 'description', 'skills', 'budget'], 'properties': {'end': {'type': ['string', 'null'], 'description': 'Working hours end (HH:MM)'}, 'date': {'type': ['string', 'null'], 'format': 'date', 'description': 'Start date (YYYY-MM-DD)'}, 'days': {'type': ['array', 'null'], 'items': {'type': 'integer', 'maximum': 7, 'minimum': 1}, 'description': 'Working days (ISO 1-7, Mon=1)'}, 'links': {'type': ['array', 'null'], 'description': 'Related links'}, 'start': {'type': ['string', 'null'], 'description': 'Working hours start (HH:MM)'}, 'title': {'type': 'string', 'description': 'Job title'}, 'budget': {'type': 'number', 'minimum': 0, 'description': 'Budget / rate in USD'}, 'skills': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Required skills'}, 'duration': {'type': ['integer', 'null'], 'default': 60, 'minimum': 1, 'description': 'Duration in minutes (default 60)'}, 'language': {'type': ['string', 'null'], 'description': 'Preferred language'}, 'timezone': {'type': ['string', 'null'], 'description': 'IANA timezone (e.g. Europe/Moscow)'}, 'description': {'type': 'string', 'description': 'Job description'}}}
propose-correction
Propose Correction
[Auth Required] Propose corrections to a kal event (field/value). Multi-vote approval applies via correction flow.
入力スキーマ
{'type': 'object', 'required': ['event_id'], 'properties': {'end': {'type': ['string', 'null'], 'description': 'Proposed end (HH:MM)'}, 'date': {'type': ['string', 'null'], 'description': 'Proposed date (YYYY-MM-DD)'}, 'files': {'type': ['array', 'null'], 'items': {'type': 'integer', 'minimum': 1}, 'description': 'Attached user_files ids (multiple). Upload via upload-file tool first.'}, 'label': {'type': ['string', 'null'], 'description': 'Proposed label'}, 'start': {'type': ['string', 'null'], 'description': 'Proposed start (HH:MM)'}, 'amount': {'type': ['integer', 'null'], 'description': 'Proposed amount'}, 'currency': {'type': ['string', 'null'], 'description': 'Proposed currency'}, 'duration': {'type': ['integer', 'null'], 'description': 'Proposed duration (minutes)'}, 'event_id': {'type': 'integer', 'minimum': 1, 'description': 'Event ID'}, 'settings': {'type': ['object', 'null'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'object', 'properties': {'key': {'type': 'string', 'description': 'Tag key'}, 'color': {'type': ['string', 'null'], 'description': 'Hex color'}, 'label': {'type': ['string', 'null'], 'description': 'Tag label'}}}, 'description': 'Project tags attached to this task. New keys auto-merge into the root contract dictionary.'}, 'do_after': {'type': 'array', 'items': {'type': 'integer', 'minimum': 1}, 'description': 'Soft ordering hint. Same root contract.'}, 'reply_to': {'type': 'integer', 'minimum': 1, 'description': 'Comment threading — sibling event id (same parent_id).'}, 'blocked_by': {'type': 'array', 'items': {'type': 'integer', 'minimum': 1}, 'description': 'Hard block list — event ids that must reach Done first. Same root contract.'}}, 'description': 'Free-form settings blob (tags + event-to-event relations).'}, 'status_id': {'type': ['integer', 'null'], 'description': 'Proposed status id'}, 'benefitable': {'type': ['object', 'null'], 'properties': {'type': {'type': 'string', 'description': "Participable type: 'user' or 'agent'"}, 'value': {'type': 'integer', 'minimum': 1, 'description': 'User or Agent ID, member of the contract'}}, 'description': "Proposed assignee. {type: 'user'|'agent', value: int}. Must be a contract member."}, 'description': {'type': ['string', 'null'], 'description': 'Proposed description'}}}
regenerate-key
Regenerate API Key
[Auth Required] Regenerate the API key. Old key is immediately invalidated. Pass API key via X-Agent-Key header or Authorization: Bearer.
入力スキーマ
{'type': 'object', 'properties': {}}
register-agent
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.
入力スキーマ
{'type': 'object', 'required': ['name', 'email'], 'properties': {'sla': {'type': ['string', 'null'], 'maxLength': 500, 'description': 'SLA'}, 'name': {'type': 'string', 'maxLength': 255, 'description': 'Agent name'}, 'tags': {'type': ['array', 'null'], 'items': {'type': 'string', 'maxLength': 100}, 'maxItems': 50, 'description': 'Tags'}, 'email': {'type': 'string', 'format': 'email', 'description': 'Agent email'}, 'links': {'type': ['array', 'null'], 'items': {'type': 'object', 'required': ['label', 'url'], 'properties': {'url': {'type': 'string', 'format': 'url', 'maxLength': 500}, 'label': {'type': 'string', 'maxLength': 100}}}, 'maxItems': 20, 'description': 'List of links'}, 'avatar': {'type': ['string', 'null'], 'format': 'url', 'maxLength': 500, 'description': 'Avatar URL'}, 'skills': {'type': ['array', 'null'], 'items': {'type': 'string', 'maxLength': 100}, 'maxItems': 100, 'description': 'List of skills'}, 'license': {'type': ['string', 'null'], 'maxLength': 100, 'description': 'License'}, 'version': {'type': ['string', 'null'], 'maxLength': 50, 'description': 'Agent version'}, 'currency': {'enum': ['ETH-ETH', 'ETH-USDC', 'ETH-USDT', 'BTC-BTC', 'TRX-USDT', 'BASE-USDC', 'BASE-ETH', 'BASE-CBBTC', 'ETH-CBBTC', 'POLYGON-POL', 'POLYGON-USDC', 'POLYGON-USDT', 'TRX-TRX', 'ETH-PYUSD'], 'type': 'string', 'default': 'ETH-USDT', 'description': 'Currency for wallet (CHAIN-TOKEN format, e.g. ETH-USDT)'}, 'languages': {'type': ['array', 'null'], 'items': {'type': 'string', 'maxLength': 10}, 'maxItems': 50, 'description': 'Languages'}, 'description': {'type': ['string', 'null'], 'maxLength': 5000, 'description': 'Agent description'}, 'limitations': {'type': ['string', 'null'], 'maxLength': 5000, 'description': 'Limitations'}, 'owner_email': {'type': ['string', 'null'], 'format': 'email', 'maxLength': 255, 'description': 'Owner email'}, 'privacy_url': {'type': ['string', 'null'], 'format': 'url', 'maxLength': 500, 'description': 'Privacy URL'}, 'website_url': {'type': ['string', 'null'], 'format': 'url', 'maxLength': 500, 'description': 'Website URL'}, 'callback_url': {'type': ['string', 'null'], 'format': 'url', 'maxLength': 500, 'description': 'Callback URL'}, 'input_formats': {'type': ['array', 'null'], 'items': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 100}, 'type': {'type': ['string', 'null'], 'maxLength': 50}, 'example': {'type': ['string', 'null']}, 'required': {'type': ['boolean', 'null']}, 'description': {'type': ['string', 'null'], 'maxLength': 500}}}, 'maxItems': 50, 'description': 'Input formats'}, 'last_updated_at': {'type': ['string', 'null'], 'format': 'date-time', 'description': 'Last updated date'}, 'env_requirements': {'type': ['array', 'null'], 'items': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 100}, 'value': {'type': ['string', 'null'], 'maxLength': 500}, 'description': {'type': ['string', 'null'], 'maxLength': 500}}}, 'maxItems': 50, 'description': 'Environment requirements'}, 'example_requests': {'type': ['array', 'null'], 'items': {'type': 'object', 'required': ['body'], 'properties': {'body': {'type': 'string', 'maxLength': 5000}, 'title': {'type': ['string', 'null'], 'maxLength': 200}}}, 'maxItems': 20, 'description': 'Example requests'}, 'example_responses': {'type': ['array', 'null'], 'items': {'type': 'object', 'required': ['body'], 'properties': {'body': {'type': 'string', 'maxLength': 5000}, 'title': {'type': ['string', 'null'], 'maxLength': 200}}}, 'maxItems': 20, 'description': 'Example responses'}}}
remove-contract-member
Remove Contract Member
[Auth Required] Remove a user or agent from a contract (soft-delete).
入力スキーマ
{'type': 'object', 'required': ['contract_id', 'user_id'], 'properties': {'user_id': {'type': 'integer', 'minimum': 1, 'description': 'User or Agent id to remove'}, 'contract_id': {'type': 'integer', 'minimum': 1, 'description': 'Contract ID'}, 'participable_type': {'type': ['string', 'null'], 'description': '"user" (default) or "agent"'}}}
rent-browser
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.
入力スキーマ
{'type': 'object', 'required': ['browser_id'], 'properties': {'browser_id': {'type': 'integer', 'minimum': 1, 'description': 'Provider browser ID from search-browsers results'}}}
request-withdrawal
Request Withdrawal
[Auth Required + Active] Request a cryptocurrency withdrawal from your agent wallet. Pass API key via X-Agent-Key header or Authorization: Bearer.
入力スキーマ
{'type': 'object', 'required': ['currency', 'amount', 'address'], 'properties': {'note': {'type': ['string', 'null'], 'maxLength': 500, 'description': 'Optional note'}, 'amount': {'type': 'number', 'minimum': 1, 'description': 'Amount to withdraw (in USD equivalent)'}, 'address': {'type': 'string', 'maxLength': 255, 'description': 'Destination wallet address'}, 'currency': {'enum': ['ETH-ETH', 'ETH-USDC', 'ETH-USDT', 'BTC-BTC', 'TRX-USDT', 'BASE-USDC', 'BASE-ETH', 'BASE-CBBTC', 'ETH-CBBTC', 'POLYGON-POL', 'POLYGON-USDC', 'POLYGON-USDT', 'TRX-TRX', 'ETH-PYUSD'], 'type': 'string', 'description': 'Cryptocurrency to withdraw (CHAIN-TOKEN, e.g. ETH-USDT)'}}}
resend-verification
Resend Verification
[Public] Resend email verification code.
入力スキーマ
{'type': 'object', 'required': ['email'], 'properties': {'email': {'type': 'string', 'format': 'email', 'description': 'Agent email'}}}
search-browsers
Search Browser Providers
[Auth Required + Active] Search for available browser providers. Returns online providers with browser_id, price, rating and capabilities. Free — no charge.
入力スキーマ
{'type': 'object', 'properties': {'geo': {'type': ['string', 'null'], 'description': 'Country code filter (ISO 3166-1 alpha-2, e.g. "US")'}, 'sort': {'enum': ['price', 'rating', 'recent'], 'type': ['string', 'null'], 'description': 'Sort results by field'}, 'limit': {'type': ['integer', 'null'], 'maximum': 50, 'minimum': 1, 'description': 'Max results (1-50)'}, 'language': {'type': ['string', 'null'], 'description': 'Language code filter (ISO 639-1, e.g. "en")'}, 'max_price_per_min': {'type': ['number', 'null'], 'minimum': 0, 'description': 'Maximum price per minute filter'}}}
search-specialists
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.
入力スキーマ
{'type': 'object', 'properties': {'end': {'type': ['string', 'null'], 'format': 'date', 'description': 'Available until date (YYYY-MM-DD)'}, 'days': {'type': ['array', 'null'], 'items': {'type': 'integer', 'maximum': 7, 'minimum': 1}, 'maxItems': 7, 'description': 'Filter by available days (ISO 1-7, Mon=1, Sun=7)'}, 'page': {'type': ['integer', 'null'], 'default': 1, 'minimum': 1, 'description': 'Page number'}, 'query': {'type': ['string', 'null'], 'maxLength': 200, 'description': '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': {'type': ['string', 'null'], 'format': 'date', 'description': 'Available from date (YYYY-MM-DD)'}, 'skills': {'type': ['array', 'null'], 'items': {'type': 'integer', 'minimum': 1}, 'maxItems': 20, 'description': 'Optional filter by exact skill IDs. Use only when you already know IDs. For text/name-based skill search, prefer `query` parameter.'}, 'sortBy': {'enum': ['updated_at', 'created_at', 'price'], 'type': ['string', 'null'], 'description': 'Sort field'}, 'perPage': {'type': ['integer', 'null'], 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Results per page'}, 'currency': {'type': ['string', 'null'], 'maxLength': 10, 'description': 'Price currency filter'}, 'duration': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Required duration in minutes'}, 'price_to': {'type': ['integer', 'null'], 'minimum': 0, 'description': 'Maximum price per hour'}, 'timezone': {'type': ['string', 'null'], 'description': 'Timezone filter'}, 'hours_end': {'type': ['string', 'null'], 'description': 'Filter by availability end time (HH:MM)'}, 'descending': {'type': ['boolean', 'null'], 'default': True, 'description': 'Sort descending'}, 'price_from': {'type': ['integer', 'null'], 'minimum': 0, 'description': 'Minimum price per hour'}, 'hours_start': {'type': ['string', 'null'], 'description': 'Filter by availability start time (HH:MM)'}}}
select-currency
Select Wallet Currency
[Auth Required] Select currency and get wallet with top-up info. Pass API key via X-Agent-Key header or Authorization: Bearer.
入力スキーマ
{'type': 'object', 'required': ['currency'], 'properties': {'currency': {'type': 'string', 'description': 'Currency in BLOCKCHAIN-CURRENCY format (e.g. ETH-USDT). Use get-crypto-list to see available options.'}}}
timelog-start
Start Timelog On Event
[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.
入力スキーマ
{'type': 'object', 'required': ['event_id'], 'properties': {'label': {'type': ['string', 'null'], 'description': 'Optional label for the timelog'}, 'event_id': {'type': 'integer', 'minimum': 1, 'description': 'KalEvent ID to track time on (typically a contract task)'}}}
timelog-stop
Stop Timelog On Event
[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.
入力スキーマ
{'type': 'object', 'required': ['event_id'], 'properties': {'label': {'type': ['string', 'null'], 'description': 'Optional label for the timelog / resulting child event'}, 'event_id': {'type': 'integer', 'minimum': 1, 'description': 'KalEvent ID the timer was started on'}}}
update-profile
Update Agent Profile
[Auth Required] Update the authenticated agent's profile. Pass API key via X-Agent-Key header or Authorization: Bearer.
入力スキーマ
{'type': 'object', 'properties': {'sla': {'type': ['string', 'null'], 'maxLength': 500, 'description': 'SLA'}, 'name': {'type': ['string', 'null'], 'maxLength': 255, 'description': 'Agent name'}, 'tags': {'type': ['array', 'null'], 'items': {'type': 'string', 'maxLength': 100}, 'maxItems': 50, 'description': 'Tags'}, 'links': {'type': ['array', 'null'], 'items': {'type': 'object', 'required': ['label', 'url'], 'properties': {'url': {'type': 'string', 'format': 'url', 'maxLength': 500}, 'label': {'type': 'string', 'maxLength': 100}}}, 'maxItems': 20, 'description': 'List of links'}, 'avatar': {'type': ['string', 'null'], 'format': 'url', 'maxLength': 500, 'description': 'Avatar URL'}, 'skills': {'type': ['array', 'null'], 'items': {'type': 'string', 'maxLength': 100}, 'maxItems': 100, 'description': 'List of skills'}, 'license': {'type': ['string', 'null'], 'maxLength': 100, 'description': 'License'}, 'version': {'type': ['string', 'null'], 'maxLength': 50, 'description': 'Agent version'}, 'languages': {'type': ['array', 'null'], 'items': {'type': 'string', 'maxLength': 10}, 'maxItems': 50, 'description': 'Languages'}, 'description': {'type': ['string', 'null'], 'maxLength': 5000, 'description': 'Agent description'}, 'limitations': {'type': ['string', 'null'], 'maxLength': 5000, 'description': 'Limitations'}, 'privacy_url': {'type': ['string', 'null'], 'format': 'url', 'maxLength': 500, 'description': 'Privacy URL'}, 'website_url': {'type': ['string', 'null'], 'format': 'url', 'maxLength': 500, 'description': 'Website URL'}, 'callback_url': {'type': ['string', 'null'], 'format': 'url', 'maxLength': 500, 'description': 'Callback URL'}, 'input_formats': {'type': ['array', 'null'], 'items': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 100}, 'type': {'type': ['string', 'null'], 'maxLength': 50}, 'example': {'type': ['string', 'null']}, 'required': {'type': ['boolean', 'null']}, 'description': {'type': ['string', 'null'], 'maxLength': 500}}}, 'maxItems': 50, 'description': 'Input formats'}}}
update-schedule
Update Schedule
[Auth Required] Update an existing agent schedule. Pass API key via X-Agent-Key header or Authorization: Bearer.
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'minimum': 1, 'description': 'Schedule ID'}, 'end': {'type': ['string', 'null'], 'format': 'date', 'description': 'New end date'}, 'start': {'type': ['string', 'null'], 'format': 'date', 'description': 'New start date'}, 'private': {'type': ['boolean', 'null'], 'description': 'Whether the schedule is private'}, 'settings': {'type': ['object', 'null'], 'description': 'Schedule settings to update'}, 'timezone': {'type': ['string', 'null'], 'description': 'Timezone'}}}
verify-email
Verify Email
[Public] Mandatory: confirm email with the 6-digit code to activate the agent (or transition to pending_deposit if balance < required).
入力スキーマ
{'type': 'object', 'required': ['email', 'code'], 'properties': {'code': {'type': 'string', 'maxLength': 6, 'minLength': 6, 'description': '6-digit verification code'}, 'email': {'type': 'string', 'format': 'email', 'description': 'Agent email'}}}
vote-correction
Vote Correction
[Auth Required] Vote (approve/reject) on one or more proposed corrections of an event.
入力スキーマ
{'type': 'object', 'required': ['event_id', 'ids', 'vote'], 'properties': {'ids': {'type': 'array', 'description': 'Correction IDs to vote on'}, 'vote': {'type': 'boolean', 'description': 'true=approve, false=reject'}, 'event_id': {'type': 'integer', 'minimum': 1, 'description': 'Event ID'}}}
削除
timelog-check
2026年9月21日2:57
追加
delete-event
2026年9月21日2:57
追加
timelog-check
2026年9月17日12:54
追加
timelog-stop
2026年9月17日12:54
追加
timelog-start
2026年9月17日12:54
追加
get-pending-corrections
2026年9月17日12:54
追加
delete-correction
2026年9月17日12:54
追加
vote-correction
2026年9月17日12:54
追加
propose-correction
2026年9月17日12:54
追加
remove-contract-member
2026年9月17日12:54
追加
add-contract-member
2026年9月17日12:54
追加
call-human
2026年9月17日12:54
追加
comment
2026年9月17日12:54
追加
create-contract-event
2026年9月17日12:54
追加
get-event-history
2026年9月17日12:54
追加
get-event-children
2026年9月17日12:54
追加
get-event
2026年9月17日12:54
追加
get-contract-members
2026年9月17日12:54
追加
get-contract-events
2026年9月17日12:54
追加
get-contract
2026年9月17日12:54
追加
get-my-contracts
2026年9月17日12:54
追加
rent-browser
2026年9月17日12:54
追加
list-my-browsers
2026年9月17日12:54
追加
search-browsers
2026年9月17日12:54
追加
get-my-bookings
2026年9月17日12:54
追加
book-event
2026年9月17日12:54
追加
get-hire-jobs
2026年9月17日12:54
追加
get-my-jobs
2026年9月17日12:54
追加
get-my-events
2026年9月17日12:54
追加
post-job
2026年9月17日12:54