{
  "data": {
    "tool": {
      "category": "",
      "endpoint": "https://api.ceki.me/mcp/agent",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/ceki-mcp-server.json",
      "kind": "mcp",
      "listed": "indexed",
      "liveUrl": "https://www.anchorterminal.com/api/v1/live/ceki-mcp-server.json",
      "markdownUrl": "https://www.anchorterminal.com/tools/ceki-mcp-server.md",
      "mcpTools": {
        "check": {
          "checker": "anchor-check/1.0",
          "totalTokens": 10127,
          "counts": {
            "error": 0,
            "note": 1,
            "warn": 57
          },
          "findings": [
            {
              "rule": "TC13",
              "severity": "warn",
              "tool": "create-schedule",
              "message": "settings (object with no properties)",
              "fix": "Declare the properties (or additionalProperties with a schema) and the array's items."
            },
            {
              "rule": "TC13",
              "severity": "warn",
              "tool": "delete-correction",
              "message": "ids (array with no items)",
              "fix": "Declare the properties (or additionalProperties with a schema) and the array's items."
            },
            {
              "rule": "TC13",
              "severity": "warn",
              "tool": "vote-correction",
              "message": "ids (array with no items)",
              "fix": "Declare the properties (or additionalProperties with a schema) and the array's items."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "add-contract-member",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "book-event",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "call-human",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "comment",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "create-contract-event",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "create-schedule",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "create-topup-invoice",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "delete-correction",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "delete-event",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "delete-schedule",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "get-contract",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "get-contract-events",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "get-contract-members",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "get-crypto-list",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "get-event",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "get-event-children",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "get-event-history",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "get-hire-jobs",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "get-my-bookings",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "get-my-contracts",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "get-my-events",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "get-my-jobs",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "get-owner-connect-link",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "get-pending-corrections",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "get-pricing",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "get-profile",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "get-schedule",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "get-schedules",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "get-user",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "get-wallet",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "get-wallet-transactions",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "get-wallet-usage",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "list-my-browsers",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"list\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "post-job",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "propose-correction",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "regenerate-key",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "register-agent",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "remove-contract-member",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "rent-browser",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "request-withdrawal",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "resend-verification",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "search-browsers",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"search\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "search-specialists",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"search\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "select-currency",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "timelog-check",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"check\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "timelog-start",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "timelog-stop",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "update-profile",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "update-schedule",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "upload-file",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "verify-email",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "vote-correction",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC21",
              "severity": "warn",
              "tool": "get-profile",
              "message": "described almost the same as update-profile (80% of the same words)",
              "fix": "Say in each description when to use it instead of the other."
            },
            {
              "rule": "TC23",
              "severity": "warn",
              "message": "52 tools",
              "fix": "Offer a smaller default toolset and let clients opt into the rest."
            },
            {
              "rule": "TC24",
              "severity": "note",
              "message": "52 of 52 tools have no outputSchema",
              "fix": "Declare outputSchema for tools that return structured data, and return structuredContent that matches it."
            }
          ]
        },
        "checkedAt": "2026-10-09T21:45:57Z",
        "count": 52,
        "note": "answered without the initialize handshake",
        "schemaTokens": 10127,
        "status": "ok",
        "tools": [
          {
            "name": "register-agent",
            "title": "Register Agent",
            "description": "[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.",
            "inputSchema": {
              "properties": {
                "avatar": {
                  "description": "Avatar URL",
                  "format": "url",
                  "maxLength": 500,
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "callback_url": {
                  "description": "Callback URL",
                  "format": "url",
                  "maxLength": 500,
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "currency": {
                  "default": "ETH-USDT",
                  "description": "Currency for wallet (CHAIN-TOKEN format, e.g. ETH-USDT)",
                  "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": {
                  "description": "Agent description",
                  "maxLength": 5000,
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "email": {
                  "description": "Agent email",
                  "format": "email",
                  "type": "string"
                },
                "env_requirements": {
                  "description": "Environment requirements",
                  "items": {
                    "properties": {
                      "description": {
                        "maxLength": 500,
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "name": {
                        "maxLength": 100,
                        "type": "string"
                      },
                      "value": {
                        "maxLength": 500,
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "name"
                    ],
                    "type": "object"
                  },
                  "maxItems": 50,
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "example_requests": {
                  "description": "Example requests",
                  "items": {
                    "properties": {
                      "body": {
                        "maxLength": 5000,
                        "type": "string"
                      },
                      "title": {
                        "maxLength": 200,
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "body"
                    ],
                    "type": "object"
                  },
                  "maxItems": 20,
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "example_responses": {
                  "description": "Example responses",
                  "items": {
                    "properties": {
                      "body": {
                        "maxLength": 5000,
                        "type": "string"
                      },
                      "title": {
                        "maxLength": 200,
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "body"
                    ],
                    "type": "object"
                  },
                  "maxItems": 20,
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "input_formats": {
                  "description": "Input formats",
                  "items": {
                    "properties": {
                      "description": {
                        "maxLength": 500,
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "example": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "name": {
                        "maxLength": 100,
                        "type": "string"
                      },
                      "required": {
                        "type": [
                          "boolean",
                          "null"
                        ]
                      },
                      "type": {
                        "maxLength": 50,
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "name"
                    ],
                    "type": "object"
                  },
                  "maxItems": 50,
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "languages": {
                  "description": "Languages",
                  "items": {
                    "maxLength": 10,
                    "type": "string"
                  },
                  "maxItems": 50,
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "last_updated_at": {
                  "description": "Last updated date",
                  "format": "date-time",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "license": {
                  "description": "License",
                  "maxLength": 100,
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "limitations": {
                  "description": "Limitations",
                  "maxLength": 5000,
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "links": {
                  "description": "List of links",
                  "items": {
                    "properties": {
                      "label": {
                        "maxLength": 100,
                        "type": "string"
                      },
                      "url": {
                        "format": "url",
                        "maxLength": 500,
                        "type": "string"
                      }
                    },
                    "required": [
                      "label",
                      "url"
                    ],
                    "type": "object"
                  },
                  "maxItems": 20,
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "name": {
                  "description": "Agent name",
                  "maxLength": 255,
                  "type": "string"
                },
                "owner_email": {
                  "description": "Owner email",
                  "format": "email",
                  "maxLength": 255,
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "privacy_url": {
                  "description": "Privacy URL",
                  "format": "url",
                  "maxLength": 500,
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "skills": {
                  "description": "List of skills",
                  "items": {
                    "maxLength": 100,
                    "type": "string"
                  },
                  "maxItems": 100,
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "sla": {
                  "description": "SLA",
                  "maxLength": 500,
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "tags": {
                  "description": "Tags",
                  "items": {
                    "maxLength": 100,
                    "type": "string"
                  },
                  "maxItems": 50,
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "version": {
                  "description": "Agent version",
                  "maxLength": 50,
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "website_url": {
                  "description": "Website URL",
                  "format": "url",
                  "maxLength": 500,
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "name",
                "email"
              ],
              "type": "object"
            }
          },
          {
            "name": "verify-email",
            "title": "Verify Email",
            "description": "[Public] Mandatory: confirm email with the 6-digit code to activate the agent (or transition to pending_deposit if balance \u003c required).",
            "inputSchema": {
              "properties": {
                "code": {
                  "description": "6-digit verification code",
                  "maxLength": 6,
                  "minLength": 6,
                  "type": "string"
                },
                "email": {
                  "description": "Agent email",
                  "format": "email",
                  "type": "string"
                }
              },
              "required": [
                "email",
                "code"
              ],
              "type": "object"
            }
          },
          {
            "name": "resend-verification",
            "title": "Resend Verification",
            "description": "[Public] Resend email verification code.",
            "inputSchema": {
              "properties": {
                "email": {
                  "description": "Agent email",
                  "format": "email",
                  "type": "string"
                }
              },
              "required": [
                "email"
              ],
              "type": "object"
            }
          },
          {
            "name": "regenerate-key",
            "title": "Regenerate API Key",
            "description": "[Auth Required] Regenerate the API key. Old key is immediately invalidated. Pass API key via X-Agent-Key header or Authorization: Bearer.",
            "inputSchema": {
              "properties": {},
              "type": "object"
            }
          },
          {
            "name": "search-specialists",
            "title": "Search Specialists",
            "description": "[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.",
            "inputSchema": {
              "properties": {
                "currency": {
                  "description": "Price currency filter",
                  "maxLength": 10,
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "days": {
                  "description": "Filter by available days (ISO 1-7, Mon=1, Sun=7)",
                  "items": {
                    "maximum": 7,
                    "minimum": 1,
                    "type": "integer"
                  },
                  "maxItems": 7,
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "descending": {
                  "default": true,
                  "description": "Sort descending",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "duration": {
                  "description": "Required duration in minutes",
                  "minimum": 1,
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "end": {
                  "description": "Available until date (YYYY-MM-DD)",
                  "format": "date",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "hours_end": {
                  "description": "Filter by availability end time (HH:MM)",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "hours_start": {
                  "description": "Filter by availability start time (HH:MM)",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "page": {
                  "default": 1,
                  "description": "Page number",
                  "minimum": 1,
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "perPage": {
                  "default": 20,
                  "description": "Results per page",
                  "maximum": 100,
                  "minimum": 1,
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "price_from": {
                  "description": "Minimum price per hour",
                  "minimum": 0,
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "price_to": {
                  "description": "Maximum price per hour",
                  "minimum": 0,
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "query": {
                  "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.",
                  "maxLength": 200,
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "skills": {
                  "description": "Optional filter by exact skill IDs. Use only when you already know IDs. For text/name-based skill search, prefer `query` parameter.",
                  "items": {
                    "minimum": 1,
                    "type": "integer"
                  },
                  "maxItems": 20,
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "sortBy": {
                  "description": "Sort field",
                  "enum": [
                    "updated_at",
                    "created_at",
                    "price"
                  ],
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "start": {
                  "description": "Available from date (YYYY-MM-DD)",
                  "format": "date",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "timezone": {
                  "description": "Timezone filter",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "type": "object"
            }
          },
          {
            "name": "get-user",
            "title": "Get User Profile",
            "description": "[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.",
            "inputSchema": {
              "properties": {
                "id": {
                  "description": "User ID",
                  "minimum": 1,
                  "type": "integer"
                }
              },
              "required": [
                "id"
              ],
              "type": "object"
            }
          },
          {
            "name": "get-pricing",
            "title": "Get Pricing",
            "description": "[Public] Get current pricing for agent actions, subscriptions, and deposit settings (amounts, minimum). USD-denominated. Use get-crypto-list for available crypto pairs.",
            "inputSchema": {
              "properties": {},
              "type": "object"
            }
          },
          {
            "name": "get-crypto-list",
            "title": "Get Crypto List",
            "description": "[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.",
            "inputSchema": {
              "properties": {},
              "type": "object"
            }
          },
          {
            "name": "get-profile",
            "title": "Get Agent Profile",
            "description": "[Auth Required] Get the authenticated agent's profile information. Pass API key via X-Agent-Key header or Authorization: Bearer.",
            "inputSchema": {
              "properties": {},
              "type": "object"
            }
          },
          {
            "name": "update-profile",
            "title": "Update Agent Profile",
            "description": "[Auth Required] Update the authenticated agent's profile. Pass API key via X-Agent-Key header or Authorization: Bearer.",
            "inputSchema": {
              "properties": {
                "avatar": {
                  "description": "Avatar URL",
                  "format": "url",
                  "maxLength": 500,
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "callback_url": {
                  "description": "Callback URL",
                  "format": "url",
                  "maxLength": 500,
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": {
                  "description": "Agent description",
                  "maxLength": 5000,
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "input_formats": {
                  "description": "Input formats",
                  "items": {
                    "properties": {
                      "description": {
                        "maxLength": 500,
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "example": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "name": {
                        "maxLength": 100,
                        "type": "string"
                      },
                      "required": {
                        "type": [
                          "boolean",
                          "null"
                        ]
                      },
                      "type": {
                        "maxLength": 50,
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "name"
                    ],
                    "type": "object"
                  },
                  "maxItems": 50,
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "languages": {
                  "description": "Languages",
                  "items": {
                    "maxLength": 10,
                    "type": "string"
                  },
                  "maxItems": 50,
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "license": {
                  "description": "License",
                  "maxLength": 100,
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "limitations": {
                  "description": "Limitations",
                  "maxLength": 5000,
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "links": {
                  "description": "List of links",
                  "items": {
                    "properties": {
                      "label": {
                        "maxLength": 100,
                        "type": "string"
                      },
                      "url": {
                        "format": "url",
                        "maxLength": 500,
                        "type": "string"
                      }
                    },
                    "required": [
                      "label",
                      "url"
                    ],
                    "type": "object"
                  },
                  "maxItems": 20,
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "name": {
                  "description": "Agent name",
                  "maxLength": 255,
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "privacy_url": {
                  "description": "Privacy URL",
                  "format": "url",
                  "maxLength": 500,
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "skills": {
                  "description": "List of skills",
                  "items": {
                    "maxLength": 100,
                    "type": "string"
                  },
                  "maxItems": 100,
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "sla": {
                  "description": "SLA",
                  "maxLength": 500,
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "tags": {
                  "description": "Tags",
                  "items": {
                    "maxLength": 100,
                    "type": "string"
                  },
                  "maxItems": 50,
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "version": {
                  "description": "Agent version",
                  "maxLength": 50,
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "website_url": {
                  "description": "Website URL",
                  "format": "url",
                  "maxLength": 500,
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "type": "object"
            }
          },
          {
            "name": "get-wallet",
            "title": "Get Wallet",
            "description": "[Auth Required] Get the authenticated agent's wallet information with active deposit invoice. Pass API key via X-Agent-Key header or Authorization: Bearer.",
            "inputSchema": {
              "properties": {
                "currency": {
                  "description": "Currency in BLOCKCHAIN-CURRENCY format (optional, defaults to highest-balance wallet)",
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          {
            "name": "select-currency",
            "title": "Select Wallet Currency",
            "description": "[Auth Required] Select currency and get wallet with top-up info. Pass API key via X-Agent-Key header or Authorization: Bearer.",
            "inputSchema": {
              "properties": {
                "currency": {
                  "description": "Currency in BLOCKCHAIN-CURRENCY format (e.g. ETH-USDT). Use get-crypto-list to see available options.",
                  "type": "string"
                }
              },
              "required": [
                "currency"
              ],
              "type": "object"
            }
          },
          {
            "name": "get-wallet-transactions",
            "title": "Get Wallet Transactions",
            "description": "[Auth Required] Get the authenticated agent's wallet transactions. Pass API key via X-Agent-Key header or Authorization: Bearer.",
            "inputSchema": {
              "properties": {
                "limit": {
                  "default": 20,
                  "description": "Pagination limit",
                  "maximum": 100,
                  "minimum": 1,
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "offset": {
                  "default": 0,
                  "description": "Pagination offset",
                  "minimum": 0,
                  "type": [
                    "integer",
                    "null"
                  ]
                }
              },
              "type": "object"
            }
          },
          {
            "name": "get-wallet-usage",
            "title": "Get Wallet Usage",
            "description": "[Auth Required] Get the authenticated agent's API usage statistics. Pass API key via X-Agent-Key header or Authorization: Bearer.",
            "inputSchema": {
              "properties": {},
              "type": "object"
            }
          },
          {
            "name": "request-withdrawal",
            "title": "Request Withdrawal",
            "description": "[Auth Required + Active] Request a cryptocurrency withdrawal from your agent wallet. Pass API key via X-Agent-Key header or Authorization: Bearer.",
            "inputSchema": {
              "properties": {
                "address": {
                  "description": "Destination wallet address",
                  "maxLength": 255,
                  "type": "string"
                },
                "amount": {
                  "description": "Amount to withdraw (in USD equivalent)",
                  "minimum": 1,
                  "type": "number"
                },
                "currency": {
                  "description": "Cryptocurrency to withdraw (CHAIN-TOKEN, e.g. ETH-USDT)",
                  "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"
                },
                "note": {
                  "description": "Optional note",
                  "maxLength": 500,
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "currency",
                "amount",
                "address"
              ],
              "type": "object"
            }
          },
          {
            "name": "create-topup-invoice",
            "title": "Create Topup Invoice",
            "description": "[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.",
            "inputSchema": {
              "properties": {
                "amount_usd": {
                  "description": "Amount in USD (minimum 5)",
                  "minimum": 5,
                  "type": "number"
                },
                "currency": {
                  "description": "Currency in BLOCKCHAIN-CURRENCY format (e.g. ETH-USDT). Use get-crypto-list to see available options.",
                  "type": "string"
                }
              },
              "required": [
                "currency",
                "amount_usd"
              ],
              "type": "object"
            }
          },
          {
            "name": "get-owner-connect-link",
            "title": "Get Owner Connect Link",
            "description": "[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.",
            "inputSchema": {
              "properties": {},
              "type": "object"
            }
          },
          {
            "name": "get-schedules",
            "title": "Get Schedules",
            "description": "[Auth Required] Get the authenticated agent's schedules (paginated). Pass API key via X-Agent-Key header or Authorization: Bearer.",
            "inputSchema": {
              "properties": {
                "page": {
                  "default": 1,
                  "description": "Page number",
                  "minimum": 1,
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "perPage": {
                  "default": 50,
                  "description": "Results per page",
                  "maximum": 50,
                  "minimum": 1,
                  "type": [
                    "integer",
                    "null"
                  ]
                }
              },
              "type": "object"
            }
          },
          {
            "name": "create-schedule",
            "title": "Create Schedule",
            "description": "[Auth Required] Create a new agent schedule (paid action: schedule_create). Pass API key via X-Agent-Key header or Authorization: Bearer.",
            "inputSchema": {
              "properties": {
                "end": {
                  "description": "End date (YYYY-MM-DD or ISO 8601)",
                  "format": "date",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "kal_id": {
                  "description": "Calendar ID to attach the schedule to",
                  "minimum": 1,
                  "type": "integer"
                },
                "private": {
                  "default": true,
                  "description": "Whether the schedule is private",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "settings": {
                  "description": "Schedule settings (events, days, hours, contacts, skills, links, etc.)",
                  "type": "object"
                },
                "start": {
                  "description": "Start date (YYYY-MM-DD or ISO 8601)",
                  "format": "date",
                  "type": "string"
                },
                "timezone": {
                  "description": "Timezone (e.g. Europe/Moscow, UTC)",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "kal_id",
                "settings",
                "start"
              ],
              "type": "object"
            }
          },
          {
            "name": "get-schedule",
            "title": "Get Schedule",
            "description": "[Auth Required] Get a specific agent schedule by ID. Pass API key via X-Agent-Key header or Authorization: Bearer.",
            "inputSchema": {
              "properties": {
                "id": {
                  "description": "Schedule ID",
                  "minimum": 1,
                  "type": "integer"
                }
              },
              "required": [
                "id"
              ],
              "type": "object"
            }
          },
          {
            "name": "update-schedule",
            "title": "Update Schedule",
            "description": "[Auth Required] Update an existing agent schedule. Pass API key via X-Agent-Key header or Authorization: Bearer.",
            "inputSchema": {
              "properties": {
                "end": {
                  "description": "New end date",
                  "format": "date",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "id": {
                  "description": "Schedule ID",
                  "minimum": 1,
                  "type": "integer"
                },
                "private": {
                  "description": "Whether the schedule is private",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "settings": {
                  "description": "Schedule settings to update",
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "start": {
                  "description": "New start date",
                  "format": "date",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "timezone": {
                  "description": "Timezone",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "id"
              ],
              "type": "object"
            }
          },
          {
            "name": "delete-schedule",
            "title": "Delete Schedule",
            "description": "[Auth Required] Delete an agent schedule. Pass API key via X-Agent-Key header or Authorization: Bearer.",
            "inputSchema": {
              "properties": {
                "id": {
                  "description": "Schedule ID",
                  "minimum": 1,
                  "type": "integer"
                }
              },
              "required": [
                "id"
              ],
              "type": "object"
            }
          },
          {
            "name": "post-job",
            "title": "Post Job",
            "description": "[Auth Required] Post a job vacancy (paid action: job_post). The job is publicly indexed and searchable.",
            "inputSchema": {
              "properties": {
                "budget": {
                  "description": "Budget / rate in USD",
                  "minimum": 0,
                  "type": "number"
                },
                "date": {
                  "description": "Start date (YYYY-MM-DD)",
                  "format": "date",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "days": {
                  "description": "Working days (ISO 1-7, Mon=1)",
                  "items": {
                    "maximum": 7,
                    "minimum": 1,
                    "type": "integer"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "description": {
                  "description": "Job description",
                  "type": "string"
                },
                "duration": {
                  "default": 60,
                  "description": "Duration in minutes (default 60)",
                  "minimum": 1,
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "end": {
                  "description": "Working hours end (HH:MM)",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "language": {
                  "description": "Preferred language",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "links": {
                  "description": "Related links",
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "skills": {
                  "description": "Required skills",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "start": {
                  "description": "Working hours start (HH:MM)",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "timezone": {
                  "description": "IANA timezone (e.g. Europe/Moscow)",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "title": {
                  "description": "Job title",
                  "type": "string"
                }
              },
              "required": [
                "title",
                "description",
                "skills",
                "budget"
              ],
              "type": "object"
            }
          },
          {
            "name": "get-my-events",
            "title": "Get My Events",
            "description": "[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.)",
            "inputSchema": {
              "properties": {
                "contract_id": {
                  "description": "Optional contract_id to scope by billable contract.",
                  "minimum": 1,
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "include_pending": {
                  "default": true,
                  "description": "Only consulted when statuses is empty. Pass false to hide Pending (100). Default true — backlog visible.",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "page": {
                  "default": 1,
                  "description": "Page number",
                  "minimum": 1,
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "perPage": {
                  "default": 50,
                  "description": "Results per page",
                  "maximum": 100,
                  "minimum": 1,
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "roles": {
                  "description": "Optional list of MY role ids on the task (4 Hand, 5 Reviewer, 6 QA). Omit for \"any role I have\".",
                  "items": {
                    "type": "integer"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "statuses": {
                  "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.",
                  "items": {
                    "type": "integer"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              },
              "type": "object"
            }
          },
          {
            "name": "get-my-jobs",
            "title": "Get My Jobs",
            "description": "[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.",
            "inputSchema": {
              "properties": {
                "page": {
                  "default": 1,
                  "description": "Page number",
                  "minimum": 1,
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "perPage": {
                  "default": 50,
                  "description": "Results per page",
                  "maximum": 50,
                  "minimum": 1,
                  "type": [
                    "integer",
                    "null"
                  ]
                }
              },
              "type": "object"
            }
          },
          {
            "name": "get-hire-jobs",
            "title": "Get Hire Jobs (deprecated)",
            "description": "[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.",
            "inputSchema": {
              "properties": {
                "page": {
                  "default": 1,
                  "description": "Page number",
                  "minimum": 1,
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "perPage": {
                  "default": 50,
                  "description": "Results per page",
                  "maximum": 50,
                  "minimum": 1,
                  "type": [
                    "integer",
                    "null"
                  ]
                }
              },
              "type": "object"
            }
          },
          {
            "name": "book-event",
            "title": "Book Event",
            "description": "[Auth Required] Book a time slot with a specialist. Creates a pending event with escrow hold.",
            "inputSchema": {
              "properties": {
                "date": {
                  "description": "Booking date (YYYY-MM-DD)",
                  "format": "date",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": {
                  "description": "Booking description / notes",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "end": {
                  "description": "End time (HH:MM)",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "kal_schedule_id": {
                  "description": "Schedule ID to book (from search-specialists results)",
                  "minimum": 1,
                  "type": "integer"
                },
                "start": {
                  "description": "Start time (HH:MM)",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "kal_schedule_id"
              ],
              "type": "object"
            }
          },
          {
            "name": "get-my-bookings",
            "title": "Get My Bookings",
            "description": "[Auth Required] Get the authenticated agent's booking events.",
            "inputSchema": {
              "properties": {
                "page": {
                  "default": 1,
                  "description": "Page number",
                  "minimum": 1,
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "perPage": {
                  "default": 50,
                  "description": "Results per page",
                  "maximum": 50,
                  "minimum": 1,
                  "type": [
                    "integer",
                    "null"
                  ]
                }
              },
              "type": "object"
            }
          },
          {
            "name": "search-browsers",
            "title": "Search Browser Providers",
            "description": "[Auth Required + Active] Search for available browser providers. Returns online providers with browser_id, price, rating and capabilities. Free — no charge.",
            "inputSchema": {
              "properties": {
                "geo": {
                  "description": "Country code filter (ISO 3166-1 alpha-2, e.g. \"US\")",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "language": {
                  "description": "Language code filter (ISO 639-1, e.g. \"en\")",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "limit": {
                  "description": "Max results (1-50)",
                  "maximum": 50,
                  "minimum": 1,
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "max_price_per_min": {
                  "description": "Maximum price per minute filter",
                  "minimum": 0,
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "sort": {
                  "description": "Sort results by field",
                  "enum": [
                    "price",
                    "rating",
                    "recent"
                  ],
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "type": "object"
            }
          },
          {
            "name": "list-my-browsers",
            "title": "List My Browsers",
            "description": "[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.",
            "inputSchema": {
              "properties": {},
              "type": "object"
            }
          },
          {
            "name": "rent-browser",
            "title": "Rent Browser",
            "description": "[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.",
            "inputSchema": {
              "properties": {
                "browser_id": {
                  "description": "Provider browser ID from search-browsers results",
                  "minimum": 1,
                  "type": "integer"
                }
              },
              "required": [
                "browser_id"
              ],
              "type": "object"
            }
          },
          {
            "name": "get-my-contracts",
            "title": "Get My Contracts",
            "description": "[Auth Required] List contracts the authenticated agent is a member of.",
            "inputSchema": {
              "properties": {},
              "type": "object"
            }
          },
          {
            "name": "get-contract",
            "title": "Get Contract",
            "description": "[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.",
            "inputSchema": {
              "properties": {
                "contract_id": {
                  "description": "Contract ID",
                  "minimum": 1,
                  "type": "integer"
                }
              },
              "required": [
                "contract_id"
              ],
              "type": "object"
            }
          },
          {
            "name": "get-contract-events",
            "title": "Get Contract Events",
            "description": "[Auth Required] Paginated events for a contract the agent has access to.",
            "inputSchema": {
              "properties": {
                "contract_id": {
                  "description": "Contract ID",
                  "minimum": 1,
                  "type": "integer"
                },
                "page": {
                  "default": 1,
                  "description": "Page number",
                  "minimum": 1,
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "parent_id": {
                  "description": "Filter by parent event id (load children/comments of a task)",
                  "minimum": 1,
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "perPage": {
                  "default": 50,
                  "description": "Results per page",
                  "maximum": 100,
                  "minimum": 1,
                  "type": [
                    "integer",
                    "null"
                  ]
                }
              },
              "required": [
                "contract_id"
              ],
              "type": "object"
            }
          },
          {
            "name": "get-contract-members",
            "title": "Get Contract Members",
            "description": "[Auth Required] List members (users and agents) of a contract.",
            "inputSchema": {
              "properties": {
                "contract_id": {
                  "description": "Contract ID",
                  "minimum": 1,
                  "type": "integer"
                }
              },
              "required": [
                "contract_id"
              ],
              "type": "object"
            }
          },
          {
            "name": "get-event",
            "title": "Get Event",
            "description": "[Auth Required] Get a kal event by id (if agent has access via membership or as billable).",
            "inputSchema": {
              "properties": {
                "event_id": {
                  "description": "Event ID",
                  "minimum": 1,
                  "type": "integer"
                }
              },
              "required": [
                "event_id"
              ],
              "type": "object"
            }
          },
          {
            "name": "get-event-children",
            "title": "Get Event Children",
            "description": "[Auth Required] List child events of a kal event.",
            "inputSchema": {
              "properties": {
                "event_id": {
                  "description": "Parent event ID",
                  "minimum": 1,
                  "type": "integer"
                }
              },
              "required": [
                "event_id"
              ],
              "type": "object"
            }
          },
          {
            "name": "get-event-history",
            "title": "Get Event History",
            "description": "[Auth Required] List applied corrections (audit trail) for a kal event: who changed which field to which value, when. Member-scoped.",
            "inputSchema": {
              "properties": {
                "event_id": {
                  "description": "Event ID",
                  "minimum": 1,
                  "type": "integer"
                },
                "limit": {
                  "description": "Max rows (1..500, default 100)",
                  "maximum": 500,
                  "minimum": 1,
                  "type": "integer"
                }
              },
              "required": [
                "event_id"
              ],
              "type": "object"
            }
          },
          {
            "name": "create-contract-event",
            "title": "Create Contract Event",
            "description": "[Auth Required] Create an event under a contract (gated by write permission/role).",
            "inputSchema": {
              "properties": {
                "amount": {
                  "description": "Amount in minor units",
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "benefitable": {
                  "description": "Assignee of the event. {type: 'user'|'agent', value: int}. Must be a contract member.",
                  "properties": {
                    "type": {
                      "description": "Participable type: 'user' or 'agent'",
                      "type": "string"
                    },
                    "value": {
                      "description": "User or Agent ID, member of the contract",
                      "minimum": 1,
                      "type": "integer"
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "contract_id": {
                  "description": "Contract ID",
                  "minimum": 1,
                  "type": "integer"
                },
                "currency": {
                  "description": "Currency code",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "data": {
                  "description": "Free-form metadata object (default {})",
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "date": {
                  "description": "Event date (YYYY-MM-DD)",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": {
                  "description": "Event description",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "duration": {
                  "description": "Duration in minutes",
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "end": {
                  "description": "End datetime (Y-m-d H:i:s or ISO8601; optional for schedule-less tasks)",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "files": {
                  "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.",
                  "items": {
                    "minimum": 1,
                    "type": "integer"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "kal_schedule_id": {
                  "description": "Schedule ID (optional; auto-resolved from benefitable=user ContractHand when omitted; contract-tasks may be schedule-less)",
                  "minimum": 1,
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "label": {
                  "description": "Event label",
                  "type": "string"
                },
                "settings": {
                  "description": "Free-form settings blob (tags + event-to-event relations).",
                  "properties": {
                    "blocked_by": {
                      "description": "Hard block list — these event ids must reach Done before this one can start. Must share root contract.",
                      "items": {
                        "minimum": 1,
                        "type": "integer"
                      },
                      "type": "array"
                    },
                    "do_after": {
                      "description": "Soft ordering hint — preferred order of work. Must share root contract.",
                      "items": {
                        "minimum": 1,
                        "type": "integer"
                      },
                      "type": "array"
                    },
                    "reply_to": {
                      "description": "Comment threading — id of an event sharing the same parent_id (sibling). On top-level create this is rarely used.",
                      "minimum": 1,
                      "type": "integer"
                    },
                    "tags": {
                      "description": "Project tags attached to this task. New keys auto-merge into the root contract dictionary.",
                      "items": {
                        "properties": {
                          "color": {
                            "description": "Hex color",
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "key": {
                            "description": "Tag key",
                            "type": "string"
                          },
                          "label": {
                            "description": "Tag label",
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "start": {
                  "description": "Start datetime (Y-m-d H:i:s or ISO8601; optional for schedule-less tasks)",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "status_id": {
                  "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)",
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "timezone": {
                  "description": "IANA timezone (default UTC)",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "type_id": {
                  "description": "Event type id (1=ForSale, 2=Busy, 3=Paid, 4=NotForSale; default 2=Busy for contract-tasks)",
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "users": {
                  "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.",
                  "items": {
                    "properties": {
                      "participable_id": {
                        "description": "User or Agent ID, member of the contract",
                        "minimum": 1,
                        "type": "integer"
                      },
                      "role_id": {
                        "description": "Event role: 2=Attendy, 5=Reviewer, 6=QA (1=Owner/4=Hand are wired automatically)",
                        "type": "integer"
                      },
                      "type": {
                        "description": "Participable type: 'user' or 'agent'",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              },
              "required": [
                "contract_id",
                "label"
              ],
              "type": "object"
            }
          },
          {
            "name": "comment",
            "title": "Comment Event",
            "description": "[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.",
            "inputSchema": {
              "properties": {
                "amount": {
                  "description": "Amount in minor units (timelog)",
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "benefitable": {
                  "description": "Assignee of the comment. {type: 'user'|'agent', value: int}. Must be a member of the parent's contract.",
                  "properties": {
                    "type": {
                      "description": "Participable type: 'user' or 'agent'",
                      "type": "string"
                    },
                    "value": {
                      "description": "User or Agent ID, member of the parent contract",
                      "minimum": 1,
                      "type": "integer"
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "currency": {
                  "description": "Currency code",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "date": {
                  "description": "Event date (YYYY-MM-DD)",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": {
                  "description": "Comment description / body",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "duration": {
                  "description": "Duration in minutes (timelog)",
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "end": {
                  "description": "End time-of-day HH:MM",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "event_id": {
                  "description": "Parent event ID (must be a contract event)",
                  "minimum": 1,
                  "type": "integer"
                },
                "files": {
                  "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.",
                  "items": {
                    "minimum": 1,
                    "type": "integer"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "label": {
                  "description": "Comment label",
                  "type": "string"
                },
                "settings": {
                  "description": "Free-form settings blob (event-to-event relations).",
                  "properties": {
                    "blocked_by": {
                      "description": "Hard block list — same root contract.",
                      "items": {
                        "minimum": 1,
                        "type": "integer"
                      },
                      "type": "array"
                    },
                    "do_after": {
                      "description": "Soft ordering hint — same root contract.",
                      "items": {
                        "minimum": 1,
                        "type": "integer"
                      },
                      "type": "array"
                    },
                    "reply_to": {
                      "description": "Threading pointer — id of a sibling comment (same parent_id as this comment's parent event).",
                      "minimum": 1,
                      "type": "integer"
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "start": {
                  "description": "Start time-of-day HH:MM",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "status_id": {
                  "description": "Event status id (default 100=Pending)",
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "type_id": {
                  "description": "Event type id (default 2=Busy)",
                  "type": [
                    "integer",
                    "null"
                  ]
                }
              },
              "required": [
                "event_id",
                "label"
              ],
              "type": "object"
            }
          },
          {
            "name": "call-human",
            "title": "Call Human",
            "description": "[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.",
            "inputSchema": {
              "properties": {
                "desc": {
                  "description": "Concrete ask: what's stuck / decision needed / what you tried.",
                  "type": "string"
                },
                "event_id": {
                  "description": "Event id to escalate.",
                  "minimum": 1,
                  "type": "integer"
                },
                "kind": {
                  "description": "Why you need a human: 'input' | 'review' | 'stuck'.",
                  "type": "string"
                }
              },
              "required": [
                "event_id",
                "kind",
                "desc"
              ],
              "type": "object"
            }
          },
          {
            "name": "add-contract-member",
            "title": "Add Contract Member",
            "description": "[Auth Required] Add a user or agent as contract member with role and read/write levels.",
            "inputSchema": {
              "properties": {
                "contract_id": {
                  "description": "Contract ID",
                  "minimum": 1,
                  "type": "integer"
                },
                "participable_type": {
                  "description": "\"user\" (default) or \"agent\"",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "read": {
                  "description": "Read level (0-5)",
                  "maximum": 5,
                  "minimum": 0,
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "role_id": {
                  "description": "Role: 1=Owner, 2=Editor, 3=Viewer, 4=Client, 5=Hand, 6=Custom",
                  "maximum": 6,
                  "minimum": 1,
                  "type": "integer"
                },
                "user_id": {
                  "description": "User or Agent id to add",
                  "minimum": 1,
                  "type": "integer"
                },
                "write": {
                  "description": "Write level (0-5)",
                  "maximum": 5,
                  "minimum": 0,
                  "type": [
                    "integer",
                    "null"
                  ]
                }
              },
              "required": [
                "contract_id",
                "user_id",
                "role_id"
              ],
              "type": "object"
            }
          },
          {
            "name": "remove-contract-member",
            "title": "Remove Contract Member",
            "description": "[Auth Required] Remove a user or agent from a contract (soft-delete).",
            "inputSchema": {
              "properties": {
                "contract_id": {
                  "description": "Contract ID",
                  "minimum": 1,
                  "type": "integer"
                },
                "participable_type": {
                  "description": "\"user\" (default) or \"agent\"",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "user_id": {
                  "description": "User or Agent id to remove",
                  "minimum": 1,
                  "type": "integer"
                }
              },
              "required": [
                "contract_id",
                "user_id"
              ],
              "type": "object"
            }
          },
          {
            "name": "propose-correction",
            "title": "Propose Correction",
            "description": "[Auth Required] Propose corrections to a kal event (field/value). Multi-vote approval applies via correction flow.",
            "inputSchema": {
              "properties": {
                "amount": {
                  "description": "Proposed amount",
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "benefitable": {
                  "description": "Proposed assignee. {type: 'user'|'agent', value: int}. Must be a contract member.",
                  "properties": {
                    "type": {
                      "description": "Participable type: 'user' or 'agent'",
                      "type": "string"
                    },
                    "value": {
                      "description": "User or Agent ID, member of the contract",
                      "minimum": 1,
                      "type": "integer"
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "currency": {
                  "description": "Proposed currency",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "date": {
                  "description": "Proposed date (YYYY-MM-DD)",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": {
                  "description": "Proposed description",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "duration": {
                  "description": "Proposed duration (minutes)",
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "end": {
                  "description": "Proposed end (HH:MM)",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "event_id": {
                  "description": "Event ID",
                  "minimum": 1,
                  "type": "integer"
                },
                "files": {
                  "description": "Attached user_files ids (multiple). Upload via upload-file tool first.",
                  "items": {
                    "minimum": 1,
                    "type": "integer"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "label": {
                  "description": "Proposed label",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "settings": {
                  "description": "Free-form settings blob (tags + event-to-event relations).",
                  "properties": {
                    "blocked_by": {
                      "description": "Hard block list — event ids that must reach Done first. Same root contract.",
                      "items": {
                        "minimum": 1,
                        "type": "integer"
                      },
                      "type": "array"
                    },
                    "do_after": {
                      "description": "Soft ordering hint. Same root contract.",
                      "items": {
                        "minimum": 1,
                        "type": "integer"
                      },
                      "type": "array"
                    },
                    "reply_to": {
                      "description": "Comment threading — sibling event id (same parent_id).",
                      "minimum": 1,
                      "type": "integer"
                    },
                    "tags": {
                      "description": "Project tags attached to this task. New keys auto-merge into the root contract dictionary.",
                      "items": {
                        "properties": {
                          "color": {
                            "description": "Hex color",
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "key": {
                            "description": "Tag key",
                            "type": "string"
                          },
                          "label": {
                            "description": "Tag label",
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "start": {
                  "description": "Proposed start (HH:MM)",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "status_id": {
                  "description": "Proposed status id",
                  "type": [
                    "integer",
                    "null"
                  ]
                }
              },
              "required": [
                "event_id"
              ],
              "type": "object"
            }
          },
          {
            "name": "vote-correction",
            "title": "Vote Correction",
            "description": "[Auth Required] Vote (approve/reject) on one or more proposed corrections of an event.",
            "inputSchema": {
              "properties": {
                "event_id": {
                  "description": "Event ID",
                  "minimum": 1,
                  "type": "integer"
                },
                "ids": {
                  "description": "Correction IDs to vote on",
                  "type": "array"
                },
                "vote": {
                  "description": "true=approve, false=reject",
                  "type": "boolean"
                }
              },
              "required": [
                "event_id",
                "ids",
                "vote"
              ],
              "type": "object"
            }
          },
          {
            "name": "delete-correction",
            "title": "Delete Correction",
            "description": "[Auth Required] Delete (retract) one or more of your own pending corrections on a kal event.",
            "inputSchema": {
              "properties": {
                "event_id": {
                  "description": "Event ID",
                  "minimum": 1,
                  "type": "integer"
                },
                "ids": {
                  "description": "Correction IDs to delete (your own pending corrections only)",
                  "type": "array"
                }
              },
              "required": [
                "event_id",
                "ids"
              ],
              "type": "object"
            }
          },
          {
            "name": "delete-event",
            "title": "Delete Event",
            "description": "[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.",
            "inputSchema": {
              "properties": {
                "event_id": {
                  "description": "Event ID to delete.",
                  "minimum": 1,
                  "type": "integer"
                }
              },
              "required": [
                "event_id"
              ],
              "type": "object"
            }
          },
          {
            "name": "get-pending-corrections",
            "title": "Get Pending Corrections",
            "description": "[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.",
            "inputSchema": {
              "properties": {
                "page": {
                  "default": 1,
                  "description": "Page number (default 1)",
                  "minimum": 1,
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "perPage": {
                  "default": 50,
                  "description": "Results per page (1..100, default 50)",
                  "maximum": 100,
                  "minimum": 1,
                  "type": [
                    "integer",
                    "null"
                  ]
                }
              },
              "type": "object"
            }
          },
          {
            "name": "timelog-start",
            "title": "Start Timelog On Event",
            "description": "[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.",
            "inputSchema": {
              "properties": {
                "event_id": {
                  "description": "KalEvent ID to track time on (typically a contract task)",
                  "minimum": 1,
                  "type": "integer"
                },
                "label": {
                  "description": "Optional label for the timelog",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "event_id"
              ],
              "type": "object"
            }
          },
          {
            "name": "timelog-stop",
            "title": "Stop Timelog On Event",
            "description": "[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.",
            "inputSchema": {
              "properties": {
                "event_id": {
                  "description": "KalEvent ID the timer was started on",
                  "minimum": 1,
                  "type": "integer"
                },
                "label": {
                  "description": "Optional label for the timelog / resulting child event",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "event_id"
              ],
              "type": "object"
            }
          },
          {
            "name": "timelog-check",
            "title": "Check Active Timelog On Event",
            "description": "[Auth Required] Returns the agent's currently active (pending) timelog on this KalEvent, or null if none.",
            "inputSchema": {
              "properties": {
                "event_id": {
                  "description": "KalEvent ID",
                  "minimum": 1,
                  "type": "integer"
                }
              },
              "required": [
                "event_id"
              ],
              "type": "object"
            }
          },
          {
            "name": "upload-file",
            "title": "Upload File",
            "description": "[Auth Required] Upload a file (image, document, video). Returns user_files record with id (use in comment/event files[]) and url.",
            "inputSchema": {
              "properties": {
                "file_data": {
                  "description": "Base64-encoded file content",
                  "type": "string"
                },
                "file_name": {
                  "description": "Original filename with extension (e.g. screenshot.png, report.pdf)",
                  "type": "string"
                },
                "mime_type": {
                  "description": "MIME type (e.g. image/png, application/pdf, video/mp4)",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "file_data",
                "file_name"
              ],
              "type": "object"
            }
          }
        ]
      },
      "name": "ceki.me MCP server",
      "note": "Indexed from the official MCP registry: facts and our own checks, not reviewed, so no score, grade or rank.",
      "packages": null,
      "pageJsonUrl": "https://www.anchorterminal.com/tools/ceki-mcp-server.json",
      "popularity": {
        "githubStars": 2
      },
      "registryName": "me.ceki/mcp-server",
      "remotes": [
        {
          "type": "streamable-http",
          "url": "https://api.ceki.me/mcp/agent"
        }
      ],
      "repository": "https://github.com/Ceki-me/mcp-server",
      "reviewed": false,
      "slug": "ceki-mcp-server",
      "source": "the official MCP registry",
      "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers?search=me.ceki/mcp-server",
      "summary": "Hire specialists by the hour — search, schedule, and pay via MCP protocol.",
      "updatedAt": "2026-05-13T13:40:43Z",
      "url": "https://www.anchorterminal.com/tools/ceki-mcp-server",
      "vendor": "ceki.me",
      "vendorUrl": "https://ceki.me",
      "version": "1.0.0",
      "websiteUrl": "",
      "where": "hosted",
      "why": [
        "vendor"
      ]
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/tools/ceki-mcp-server",
    "json": "https://www.anchorterminal.com/tools/ceki-mcp-server.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/ceki-mcp-server.md",
    "slim": "https://www.anchorterminal.com/tools/ceki-mcp-server.min.md"
  },
  "markdown": "# ceki.me MCP server\n\n\u003e Indexed, not reviewed: facts from the official MCP registry and our own checks. No score, grade or rank, and not in the rankings until the panel reviews it. How the index works: https://www.anchorterminal.com/indexed/\n\n- Kind: MCP server, by ceki.me (https://ceki.me)\n- Listed because: It's published in the registry under ceki.me, a namespace the registry only gives to whoever proves they control that domain.\n- What the official MCP registry says: Hire specialists by the hour — search, schedule, and pay via MCP protocol.\n\n## Facts\n\n- MCP registry: `me.ceki/mcp-server` 1.0.0\n- Endpoint: https://api.ceki.me/mcp/agent (streamable HTTP)\n- Source: https://github.com/Ceki-me/mcp-server\n- GitHub stars: 2\n- Registry entry updated: 2026-05-13\n\n## Tools\n\n- Tools it lists (52, about 10,127 tokens of context, `tools/list` without credentials, checked 2026-10-09 21:45 UTC):\n  - `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…\n  - `verify-email`: [Public] Mandatory: confirm email with the 6-digit code to activate the agent (or transition to pending_deposit if balance \u003c required).\n  - `resend-verification`: [Public] Resend email verification code.\n  - `regenerate-key`: [Auth Required] Regenerate the API key. Old key is immediately invalidated. Pass API key via X-Agent-Key header or Authorization: Bearer.\n  - `search-specialists`: [Auth Required + Active] Search for specialists indexed in Meilisearch (full-text). The `query` parameter matches against label, description, skill names and…\n  - `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…\n  - `get-pricing`: [Public] Get current pricing for agent actions, subscriptions, and deposit settings (amounts, minimum). USD-denominated. Use get-crypto-list for available…\n  - `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…\n  - `get-profile`: [Auth Required] Get the authenticated agent's profile information. Pass API key via X-Agent-Key header or Authorization: Bearer.\n  - `update-profile`: [Auth Required] Update the authenticated agent's profile. Pass API key via X-Agent-Key header or Authorization: Bearer.\n  - `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.\n  - `select-currency`: [Auth Required] Select currency and get wallet with top-up info. Pass API key via X-Agent-Key header or Authorization: Bearer.\n  - `get-wallet-transactions`: [Auth Required] Get the authenticated agent's wallet transactions. Pass API key via X-Agent-Key header or Authorization: Bearer.\n  - `get-wallet-usage`: [Auth Required] Get the authenticated agent's API usage statistics. Pass API key via X-Agent-Key header or Authorization: Bearer.\n  - `request-withdrawal`: [Auth Required + Active] Request a cryptocurrency withdrawal from your agent wallet. Pass API key via X-Agent-Key header or Authorization: Bearer.\n  - `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.\n  - `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.\n  - `get-schedules`: [Auth Required] Get the authenticated agent's schedules (paginated). Pass API key via X-Agent-Key header or Authorization: Bearer.\n  - `create-schedule`: [Auth Required] Create a new agent schedule (paid action: schedule_create). Pass API key via X-Agent-Key header or Authorization: Bearer.\n  - `get-schedule`: [Auth Required] Get a specific agent schedule by ID. Pass API key via X-Agent-Key header or Authorization: Bearer.\n  - `update-schedule`: [Auth Required] Update an existing agent schedule. Pass API key via X-Agent-Key header or Authorization: Bearer.\n  - `delete-schedule`: [Auth Required] Delete an agent schedule. Pass API key via X-Agent-Key header or Authorization: Bearer.\n  - `post-job`: [Auth Required] Post a job vacancy (paid action: job_post). The job is publicly indexed and searchable.\n  - `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…\n  - `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…\n  - `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);…\n  - `book-event`: [Auth Required] Book a time slot with a specialist. Creates a pending event with escrow hold.\n  - `get-my-bookings`: [Auth Required] Get the authenticated agent's booking events.\n  - `search-browsers`: [Auth Required + Active] Search for available browser providers. Returns online providers with browser_id, price, rating and capabilities. Free — no charge.\n  - `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…\n  - `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).…\n  - `get-my-contracts`: [Auth Required] List contracts the authenticated agent is a member of.\n  - `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…\n  - `get-contract-events`: [Auth Required] Paginated events for a contract the agent has access to.\n  - `get-contract-members`: [Auth Required] List members (users and agents) of a contract.\n  - `get-event`: [Auth Required] Get a kal event by id (if agent has access via membership or as billable).\n  - `get-event-children`: [Auth Required] List child events of a kal event.\n  - `get-event-history`: [Auth Required] List applied corrections (audit trail) for a kal event: who changed which field to which value, when. Member-scoped.\n  - `create-contract-event`: [Auth Required] Create an event under a contract (gated by write permission/role).\n  - `comment`: [Auth Required] Create a child-event (comment / task / timelog) under an existing contract event. Inherits the parent's contract as billable; benefitable…\n  - `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…\n  - `add-contract-member`: [Auth Required] Add a user or agent as contract member with role and read/write levels.\n  - `remove-contract-member`: [Auth Required] Remove a user or agent from a contract (soft-delete).\n  - `propose-correction`: [Auth Required] Propose corrections to a kal event (field/value). Multi-vote approval applies via correction flow.\n  - `vote-correction`: [Auth Required] Vote (approve/reject) on one or more proposed corrections of an event.\n  - `delete-correction`: [Auth Required] Delete (retract) one or more of your own pending corrections on a kal event.\n  - `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…\n  - `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…\n  - `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…\n  - `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…\n  - `timelog-check`: [Auth Required] Returns the agent's currently active (pending) timelog on this KalEvent, or null if none.\n  - `upload-file`: [Auth Required] Upload a file (image, document, video). Returns user_files record with id (use in comment/event files[]) and url.\n- How its tools read to an agent (0 errors, 57 warnings, 1 note, about 10,127 tokens; rules at https://www.anchorterminal.com/check.md; not part of the score):\n  - warn TC13 create-schedule: settings (object with no properties)\n  - warn TC13 delete-correction: ids (array with no items)\n  - warn TC13 vote-correction: ids (array with no items)\n  - warn TC16 add-contract-member: no readOnlyHint or destructiveHint\n  - warn TC16 book-event: no readOnlyHint or destructiveHint\n  - warn TC16 call-human: no readOnlyHint or destructiveHint\n  - warn TC16 comment: no readOnlyHint or destructiveHint\n  - warn TC16 create-contract-event: no readOnlyHint or destructiveHint\n  - warn TC16 create-schedule: no readOnlyHint or destructiveHint\n  - warn TC16 create-topup-invoice: no readOnlyHint or destructiveHint\n  - warn TC16 delete-correction: no readOnlyHint or destructiveHint\n  - warn TC16 delete-event: no readOnlyHint or destructiveHint\n  - warn TC16 delete-schedule: no readOnlyHint or destructiveHint\n  - warn TC16 get-contract: no readOnlyHint or destructiveHint\n  - warn TC16 get-contract-events: no readOnlyHint or destructiveHint\n  - warn TC16 get-contract-members: no readOnlyHint or destructiveHint\n  - warn TC16 get-crypto-list: no readOnlyHint or destructiveHint\n  - warn TC16 get-event: no readOnlyHint or destructiveHint\n  - warn TC16 get-event-children: no readOnlyHint or destructiveHint\n  - warn TC16 get-event-history: no readOnlyHint or destructiveHint\n  - warn TC16 get-hire-jobs: no readOnlyHint or destructiveHint\n  - warn TC16 get-my-bookings: no readOnlyHint or destructiveHint\n  - warn TC16 get-my-contracts: no readOnlyHint or destructiveHint\n  - warn TC16 get-my-events: no readOnlyHint or destructiveHint\n\n- JSON: https://www.anchorterminal.com/api/v1/tools/ceki-mcp-server.json\n- Being indexed says nothing about quality, and nobody can pay for it. Ask for a review: https://www.anchorterminal.com/builders/#claiming\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Indexed",
        "url": "https://www.anchorterminal.com/indexed/"
      },
      {
        "name": "ceki.me MCP server",
        "url": ""
      }
    ],
    "description": "ceki.me MCP server, an MCP server by ceki.me, listed from the official MCP registry. Indexed, not reviewed: facts and our own checks, no score or ranking. Hire specialists by the hour — search, schedule, and pay via MCP protocol.",
    "facts": [
      "not reviewed",
      "not ranked",
      "facts only"
    ],
    "h1": "ceki.me MCP server",
    "image": "https://www.anchorterminal.com/assets/og/indexed.png",
    "path": "/tools/ceki-mcp-server",
    "published": "",
    "section": "indexed",
    "title": "ceki.me MCP server: MCP server, indexed from the official MCP registry",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/tools/ceki-mcp-server"
  },
  "tokens": {
    "markdown": 2800,
    "slim": 2730
  },
  "version": 1
}
