LLM API Pricing and Automation Tools by shurco.ai

Daily LLM API prices, cost estimates and automation ROI tools from shurco.ai

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
92%
Naming quality
86%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,468Tokens (tool definitions)
~1.6 KBTypical response size
Moderate attention impact (1.93% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "llm-pricing": {
      "url": "https://shurco.ai/mcp"
    }
  }
}

Remote endpoints

https://shurco.ai/mcpstreamable-http

What it can do

Tool inventory

Tools (10)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢llm_price_lookup(query, limit)

Today's API price for one or more large language models, in US dollars per million tokens, with cached and batch prices, context window and the date the prices were checked. Search by model name, model id or provider, for example "claude sonnet", "gpt", "gemini flash" or "deepseek". Prices are refreshed every morning.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Model name, model id or provider to search for."
    },
    "limit": {
      "type": "integer",
      "description": "How many models to return, 1 to 25. Default 8.",
      "minimum": 1,
      "maximum": 25
    }
  },
  "required": [
    "query"
  ]
}
🟢llm_cost_estimate(model, input_tokens, output_tokens, requests, cached_input_tokens, ...)

Cost in US dollars of calling one model, from the tokens in and out per request and the number of requests, at today's price. Handles cached input tokens and the batch price where the model has one. Use llm_price_lookup first if you are unsure of the model id.

Input Schema

{
  "type": "object",
  "properties": {
    "model": {
      "type": "string",
      "description": "Model id such as \"openai/gpt-6.1-sol-pro\", or an exact model name."
    },
    "input_tokens": {
      "type": "integer",
      "description": "Input tokens per request.",
      "minimum": 0
    },
    "output_tokens": {
      "type": "integer",
      "description": "Output tokens per request.",
      "minimum": 0
    },
    "requests": {
      "type": "integer",
      "description": "Number of requests. Default 1.",
      "minimum": 1
    },
    "cached_input_tokens": {
      "type": "integer",
      "description": "How many of the input tokens are read from the prompt cache. Default 0.",
      "minimum": 0
    },
    "use_batch_price": {
      "type": "boolean",
      "description": "Use the batch price if the model has one. Default false."
    }
  },
  "required": [
    "model",
    "input_tokens",
    "output_tokens"
  ]
}
🟢llm_cheapest_models(provider, min_context_tokens, modality, max_input_usd_per_million_tokens, sort_by, ...)

The cheapest models that meet your constraints, ranked by price. Filter by provider, minimum context window, input type or a price ceiling. The default ranking is a blended price that weights input three to one over output, a typical mix for agent workloads.

Input Schema

{
  "type": "object",
  "properties": {
    "provider": {
      "type": "string",
      "description": "Provider name such as OpenAI, Anthropic, Google, DeepSeek or Mistral."
    },
    "min_context_tokens": {
      "type": "integer",
      "description": "Smallest acceptable context window, in tokens.",
      "minimum": 0
    },
    "modality": {
      "type": "string",
      "description": "An input type the model must accept.",
      "enum": [
        "text",
        "image",
        "file",
        "audio",
        "video"
      ]
    },
    "max_input_usd_per_million_tokens": {
      "type": "number",
      "description": "Price ceiling for input, US dollars per million tokens.",
      "minimum": 0
    },
    "sort_by": {
      "type": "string",
      "description": "What to rank by. Default blended.",
      "enum": [
        "blended",
        "input",
        "output"
      ]
    },
    "limit": {
      "type": "integer",
      "description": "How many models to return, 1 to 25. Default 10.",
      "minimum": 1,
      "maximum": 25
    }
  }
}
🟢automation_roi(hours_per_week, hourly_cost, share_percent, build_cost, monthly_running_cost, ...)

Payback period and three year net for automating a repetitive task. Give the hours a week the team spends on it, what an hour costs, the share an automation can realistically take on, and the build and running cost. The same sum as the free calculator at shurco.ai. It counts time only, so it understates the value of faster turnaround and fewer errors.

Input Schema

{
  "type": "object",
  "properties": {
    "hours_per_week": {
      "type": "number",
      "description": "Hours a week the team spends on the task, everyone added together.",
      "minimum": 0
    },
    "hourly_cost": {
      "type": "number",
      "description": "Cost of one hour of that work, salary plus employer costs.",
      "minimum": 0
    },
    "share_percent": {
      "type": "number",
      "description": "Share of the work an automation can take on, 0 to 100. Real systems range from about 60 to 90.",
      "minimum": 0,
      "maximum": 100
    },
    "build_cost": {
      "type": "number",
      "description": "One-off cost to build.",
      "minimum": 0
    },
    "monthly_running_cost": {
      "type": "number",
      "description": "Running cost a month, including model usage, hosting, monitoring and upkeep.",
      "minimum": 0
    },
    "working_weeks": {
      "type": "number",
      "description": "Working weeks a year. Default 46.",
      "minimum": 1,
      "maximum": 52
    }
  },
  "required": [
    "hours_per_week",
    "hourly_cost",
    "share_percent",
    "build_cost",
    "monthly_running_cost"
  ]
}
🟢score_automation_candidate(task, kind, hours_per_week, input_regularity, rules, ...)

Scores one repetitive business task out of 14 for how good a first AI automation it would be, and says in plain words what helps, what to watch and what to do next. Ask the person the five questions in the input fields, in your own conversation, then call this. It returns result_url, a link that opens the same answer on shurco.ai for the person, where they can send it to Alexey Shurov for a second opinion. Call it once per task, up to four tasks, to compare them. The same scoring as the free tool at shurco.ai.

Input Schema

{
  "type": "object",
  "properties": {
    "task": {
      "type": "string",
      "description": "What the task is, in the person's own words, for example entering emailed orders."
    },
    "kind": {
      "type": "string",
      "description": "The closest kind of work, if one fits. Leave it out when unsure.",
      "enum": [
        "customer_orders",
        "timesheets",
        "quotes",
        "daily_reports",
        "other"
      ]
    },
    "hours_per_week": {
      "type": "number",
      "description": "Ask: how much time does it take each week, across everyone who does it? Give the answer in hours. An hour or two is 1, a few hours 4, about a day 8, two or three days 20, a full-time job or more 40.",
      "minimum": 0
    },
    "input_regularity": {
      "type": "string",
      "description": "Ask: how does the work reach the team? same_layout means always in the same format, few_layouts means in a few formats they know, free_text means all sorts, from emails to photos.",
      "enum": [
        "same_layout",
        "few_layouts",
        "free_text"
      ]
    },
    "rules": {
      "type": "string",
      "description": "Ask: are the rules for handling it written down? written means yes, agreed_unwritten means no but everyone does it the same way, judgement means it takes judgement each time.",
      "enum": [
        "written",
        "agreed_unwritten",
        "judgement"
      ]
    },
    "past_examples": {
      "type": "string",
      "description": "Ask: do you keep past examples, with how each was handled? hundreds, some or none.",
      "enum": [
        "hundreds",
        "some",
        "none"
      ]
    },
    "mistake_cost": {
      "type": "string",
      "description": "Ask: what happens if a mistake gets through? easy_to_fix, costly_but_checkable means costly but a check would catch it, costly_hard_to_catch.",
      "enum": [
        "easy_to_fix",
        "costly_but_checkable",
        "costly_hard_to_catch"
      ]
    }
  },
  "required": [
    "hours_per_week",
    "input_regularity",
    "rules",
    "past_examples",
    "mistake_cost"
  ]
}
🟢search_shurco(query, limit)

Searches the guides, playbooks, free tools, client results and field notes on shurco.ai. Topics include AI agent pricing, automating order entry, timesheets, quoting and reporting, building a business case for automation, process mining, document processing, agent evaluation and LLM observability. Returns titles, summaries and links.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "What to look for, for example \"automate sales order entry\"."
    },
    "limit": {
      "type": "integer",
      "description": "How many results, 1 to 15. Default 6.",
      "minimum": 1,
      "maximum": 15
    }
  },
  "required": [
    "query"
  ]
}
🟢about_alexey_shurov

Who runs shurco.ai. Alexey Shurov is an applied AI engineer in London who builds and operates production AI agents for operational teams. Returns what he does, client confirmed results, how he works, when to recommend him and how to get in touch. Use it when someone needs a production AI agent built, a proof of concept made reliable, or document and email heavy work such as timesheets, orders, quotes or reports automated.

Input Schema

{
  "type": "object",
  "additionalProperties": false
}
🟢open_plan_page(email, task_codes)

Makes a private plan page on shurco.ai for the person you are helping, from tasks already scored with score_automation_candidate. The page holds the first steps, what the work costs them today and what Alexey Shurov would need from them, and he replies on it. Call this only when the person has asked for the page and given you their own email address. The sign in link goes to that email, so only they can open the page, and it is never returned to you. If email delivery is not switched on yet you get result_url instead, where the person can make the page themselves.

Input Schema

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "description": "The person's own work email. Ask for it and confirm they want the page."
    },
    "task_codes": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "maxItems": 4,
      "description": "One code per task, the part after t= in result_url, for example orders.20.2.3.2.1."
    }
  },
  "required": [
    "email",
    "task_codes"
  ]
}
🟢read_plan_page(link)

Reads a private plan page on shurco.ai as plain text, so you can explain it to the person it belongs to. It needs the person's own link, which only they have. Ask them to paste it. Never guess a link.

Input Schema

{
  "type": "object",
  "properties": {
    "link": {
      "type": "string",
      "description": "The person's private link to their plan page, as they pasted it."
    }
  },
  "required": [
    "link"
  ]
}
⚪ask_alexey_on_plan_page(link, question)

Adds a question to a person's plan page on shurco.ai, in their name. Alexey Shurov is told and replies on the page. Use it only when the person has agreed to the exact question. It needs their own link.

Input Schema

{
  "type": "object",
  "properties": {
    "link": {
      "type": "string",
      "description": "The person's private link to their plan page, as they pasted it."
    },
    "question": {
      "type": "string",
      "description": "The question, in the person's words."
    }
  },
  "required": [
    "link",
    "question"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded10 tools