crevio
mcp.crevio.co
Delegate work to the Crevio agent or call the Crevio API through code execution — products, customers, orders, and more
mcp.crevio.co via a single DNS TXT record to add the
verified by owner badge, embed an Agenstry badge on your README, and earn back the missing conformance points listed below.
Dispute or improve this rating
F
Conformance score: 31/100
F-grade: card is reachable but fails most operational signals.
click to expand breakdown ▾
click to collapse breakdown ▴
agent-card.json changed within the last 7 days. We track these so downstream callers can react.
Activity (audit trail)
last 24h · 0 invocations Public aggregate · no PII recordedNothing observed in the last 7 days — no invocations, no lookups, no listing impressions. Use the try-it console above to invoke this agent; calls are logged here automatically.
Card history
1 snapshot Every change toagent-card.json
| Captured | Hash | |
|---|---|---|
| 2026-08-23 02:36:09 current | 8cc7f7991ec2… |
view → |
Skills · 1 declared · mapped to canonical taxonomy
Delegate work to the Crevio agent or call the Crevio API through code execution — products, customers, orders, and more
Health · last 1 probes
Cheaper or better alternatives per-skill
For each canonical skill this agent serves, the cheapest priced competitor and the highest-quality competitor. Only shown when at least one beats the current agent. Skills where this agent is already best on both axes are hidden.
Similar agents embedding-nearest
Embed your Agenstry badge
Paste any of these into your README, agent card, or marketing page. Each badge auto-updates and links back to this page.
Markdown / HTML snippets
[](https://agenstry.com/agents/mcp.crevio.co) [](https://agenstry.com/agents/mcp.crevio.co) [](https://agenstry.com/agents/mcp.crevio.co) [](https://agenstry.com/agents/mcp.crevio.co)
Audit-grade evidence bundle
JSON snapshot for vendor-review files. Add ?sign=true for a JWS-signed envelope verifiable against
our JWKS. See the methodology.
Raw agent card JSON
{
"name": "crevio",
"title": "Crevio MCP Server",
"description": "Delegate work to the Crevio agent or call the Crevio API through code execution \u2014 products, customers, orders, and more",
"version": "2.0.0",
"url": "https://mcp.crevio.co/mcp",
"serverUrl": "https://mcp.crevio.co/mcp",
"serverInfo": {
"name": "crevio",
"version": "2.0.0"
},
"transport": {
"type": "streamable-http",
"endpoint": "https://mcp.crevio.co/mcp"
},
"protocol": "MCP Streamable HTTP",
"protocolVersion": "2026-07-28",
"supportedVersions": [
"2026-07-28"
],
"capabilities": {
"tools": {}
},
"tools": [
{
"name": "whoami",
"description": "Identify the account, user, and credential behind this connection, with plan, credit balance, rate limits, and the tools available. Call it first to verify the setup.",
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
}
},
{
"name": "ask_crevio",
"description": "Delegate a job to the Crevio agent and wait for the result. Starts a run that works your account through the Crevio API (products, customers, orders, email, socials, sites, research), waits up to timeout_seconds, and returns the run with the agent's final reply in `result`. For anything longer, use start_task and wait_for_run.",
"annotations": {
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true,
"readOnlyHint": false
}
},
{
"name": "start_chat",
"description": "Open a chat with the Crevio agent and queue a run, without waiting. Returns the run immediately \u2014 its `chat_id` is the conversation to continue with send_message. Follow the run with wait_for_run or get_run.",
"annotations": {
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true,
"readOnlyHint": false
}
},
{
"name": "list_chats",
"description": "List the account's chats, newest first.",
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
}
},
{
"name": "get_chat",
"description": "Get a chat's title, kind, and latest run.",
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
}
},
{
"name": "send_message",
"description": "Continue a chat with follow-up instructions or answers \u2014 the agent keeps its context. Resumes a run waiting in needs_input, or queues a new run when the last one finished. Returns run_busy while a run is still in progress. Optionally waits for the reply.",
"annotations": {
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true,
"readOnlyHint": false
}
},
{
"name": "list_messages",
"description": "Read a chat's messages, oldest first. Returns the most recent `limit` messages; page back through older ones with starting_after.",
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
}
},
{
"name": "wait_for_run",
"description": "Wait for a run to settle (completed, failed, or needs_input) and return it with the agent's final reply. Returns wait_timed_out if it is still running when the timeout passes; call again.",
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
}
},
{
"name": "get_run",
"description": "Fetch a run's current status, summary, pending approvals, and (once settled) the agent's final reply.",
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
}
},
{
"name": "list_runs",
"description": "List the account's task runs, newest first \u2014 delegated jobs and scheduled tasks alike. Filter by status or task.",
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
}
},
{
"name": "resolve_approvals",
"description": "Approve or deny the integration actions a run is paused on (status needs_input with pending_approval_ids). Submit a decision for every pending id at once; the run resumes in the background.",
"annotations": {
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true,
"readOnlyHint": false
}
},
{
"name": "cancel_run",
"description": "Stop a run that is pending, running, or waiting for input. The run is finalized as failed with 'Cancelled by the caller'.",
"annotations": {
"destructiveHint": true,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": false
}
},
{
"name": "api_search",
"description": "Discover available Crevio API endpoints. Use this BEFORE `api_execute` when you're unsure which endpoint to call, need to check parameter names, or want to explore what's available for a domain (e.g. \"experiences\", \"discounts\"). A `tools` method returns the full API catalog \u2014 an array of hashes keyed with strings: \"method\", \"path\", \"summary\", \"description\", \"tags\", \"parameters\", \"request_body\". Examples: `tools.select { |t| t[\"tags\"]&.include?(\"Products\") }.map { |t| \"#{t[\"method\"]} #{t[\"path\"]} \u2014 #{t[\"summary\"]}\" }` `tools.find { |t| t[\"path\"].include?(\"price_variants\") && t[\"method\"] == \"POST\" }[\"request_body\"]` `tools.map { |t| t[\"tags\"] }.flatten.compact.uniq.sort` \u2014 list all API domains",
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
}
},
{
"name": "api_execute",
"description": "Execute Ruby in a sandboxed VM against the Crevio REST API. Use `api_search` first\nto find the endpoint and its body fields, then call it here. Chain calls, transform\nresults, return the final expression.\n\n## Available in your code\n\n```\nget(path, params = {}) # paths auto-prefixed with /v1, routed in-process\npost(path, **body) # body as keyword args or a hash \u2014 both work\npatch(path, **body)\ndelete(path)\nfind_endpoints(query) # -> [\"METHOD /path \u2014 summary\", ...]\niso8601(offset_seconds = 0) # mruby Time has no strftime/iso8601\n```\n\nReturns the **last expression**; `puts` is side-channel only. Every run answers\n`{result:, calls:, output:}` \u2014 `calls` audits each REST call (`method`, `path`,\n`status`, plus `error_code`/`param` on failure). When `result` has unexpected nils,\nread `calls` for a non-2xx. Never project only success fields (`{id: r[\"id\"]}`) \u2014\nthat hides the error from `result`.\n\n## Rules that the schema does not tell you\n\n- Params are unwrapped, Stripe-style: fields at the TOP level. `{product: {...}}` is\n silently dropped by most endpoints.\n- Associations take the bare resource name and a prefix_id string \u2014 `product: \"prod_x\"`,\n never `product_id:`. Some required ones never appear in a schema's `properties`.\n- Courses and content live under `/experiences`, NOT `/products`.\n- Lists answer `{object: \"list\", data: [...], has_more}`; single resources answer the\n object directly.\n- Connected integrations go through the same REST surface:\n `post(\"/connections/<id>/execute\", tool: \"<tool>\", arguments: {...})`, with ids from\n `get(\"/connections\", search: \"<service>\")`.\n- Sandboxed mruby: no `File`, `ENV`, `Net::HTTP`, `Process`. 10s, 10 MB.\n\n## Example \u2014 publishing a product (the ordering trap)\n\nA product cannot be created active: it needs a price variant first, or the call 422s.\n\n```ruby\nproduct = post(\"/products\", name: \"...\")\npost(\"/price_variants\", product: product[\"id\"], name: \"Standard\",\n amount_type: \"fixed\", amount: 4900, currency: \"usd\", billing_type: \"one_time\")\npatch(\"/products/#{product[\"id\"]}\", status: \"active\")\n```\n\nAPI groups: Access, Account, Ads, Analytics, ApiKeys, Approvals, Audio, BlogCategories, BlogPosts, Bookings, Bots, Broadcasts, Calls, Chapters, CheckoutLinks, Checkouts, Connections, Customers, Deployments, Discounts, Domains, Email, EventSessions, EventSources, EventTypes, Events, Experiences, Files, FormSubmissions, FormationDocuments, Formations, Forms, ForumPosts, Images, Invoices, Jobs, Leads, LegalPages, Lessons, LinkItems, Logs, Me, OrderItems, Orders, Phone Consents, Phone Numbers, Phone Suppressions, PriceVariants, Products, Refunds, Reviews, Schedules, Secrets, Sites, Skills, Socials, Status, Subscriptions, Tags, TaskRuns, Tasks, Topics, Usage, Users, Video, Web, WebhookEndpoints, WebhookEvents.\n",
"annotations": {
"destructiveHint": true,
"idempotentHint": false,
"openWorldHint": true,
"readOnlyHint": false
}
}
],
"auth": {
"type": "oauth2",
"protected_resource_metadata": "https://mcp.crevio.co/.well-known/oauth-protected-resource"
}
}