MCP 服务器

agentic.no

no.agentic/directory
云与基础设施 公开且可连接 MCP 2025-11-25

此 MCP 可以做什么

Finds GPU inference providers for specific models and compares their per-call pricing and availability.

find_provider
Find inference providers
Find online sellers serving a model, cheapest first. A seller's priceUsdPerCall is a flat fee charged per call; for chat and embedding it already includes maxTokensCap, so you pay the same whether or not you use the full token budget. baseUrl is an OpenAI-compatible REST endpoint scoped to this model, for example baseUrl + /v1/chat/completions; mcpUrl is the same seller over MCP. probeScore is how many of the directory's last 20 test calls to the seller passed; sellers failing three in a row are hidden until they pass again. Rows with operator agentic-pool run on agentic.no's pool, on machines rented through vast.ai (country given for sellers): avoid them for sensitive data. Rows with operator agentic are agentic.no's own always-on machines, not rented. After the sellers comes the pool row (slug pool, sellerId null) when the pool lists the model: capacity agentic.no starts on demand. If no seller suits you and pool.disabled is false, call the pool row's baseUrl like any other. A call that has to start capacity answers 503 capacity_starting with Retry-After and is not charged: retry after that many seconds, possibly more than once. 503 capacity_unavailable means nothing can start now (the reason is given) and is not charged either. get_pricing does not apply to the pool row. Payment is x402 (USDC on Base) and happens automatically when you call baseUrl or mcpUrl.
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['model'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of sellers to return, cheapest first; the pool row, if any, is added after them'}, 'model': {'type': 'string', 'minLength': 1, 'description': 'Catalog model id, e.g. qwen2.5-7b-instruct-q4'}, 'maxPriceUsd': {'type': 'number', 'description': 'Only return offers at or below this USD price per call', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['providers'], 'properties': {'providers': {'type': 'array', 'items': {'anyOf': [{'type': 'object', 'required': ['sellerId', 'slug', 'displayName', 'model', 'modality', 'priceUsdPerCall', 'maxTokensCap', 'online', 'probeScore', 'lastProbeAt', 'baseUrl', 'mcpUrl'], 'properties': {'slug': {'type': 'string'}, 'model': {'type': 'string'}, 'mcpUrl': {'type': 'string', 'description': 'MCP endpoint of this seller'}, 'online': {'type': 'boolean'}, 'baseUrl': {'type': 'string', 'description': 'OpenAI-compatible base URL for this model'}, 'country': {'type': 'string', 'description': "The pool node's host country code (two or three letters, XX when unknown); absent for other sellers"}, 'modality': {'type': 'string'}, 'operator': {'enum': ['agentic-pool', 'agentic'], 'type': 'string', 'description': "agentic-pool when the seller is a node of agentic.no's pool on a vast host (third-party, or agentic.no's own rented through vast); agentic when it is one of agentic.no's own always-on machines, not rented; absent otherwise"}, 'sellerId': {'type': 'string'}, 'probeScore': {'type': ['number', 'null'], 'description': "Passed checks among the directory's last 20 test calls to this seller (0-20); null when not yet probed"}, 'displayName': {'type': 'string'}, 'lastProbeAt': {'type': ['string', 'null'], 'description': 'When the directory last test-called this seller (ISO 8601); null when never'}, 'maxTokensCap': {'type': ['number', 'null'], 'description': 'Hard cap on max_tokens for chat and embedding calls; null for other modalities'}, 'priceUsdPerCall': {'type': 'number'}}, 'description': 'A seller serving the model now', 'additionalProperties': False}, {'type': 'object', 'required': ['sellerId', 'slug', 'displayName', 'model', 'modality', 'priceUsdPerCall', 'maxTokensCap', 'online', 'probeScore', 'lastProbeAt', 'baseUrl', 'mcpUrl', 'operator', 'pool'], 'properties': {'pool': {'type': 'object', 'required': ['online', 'disabled', 'warm', 'warmFreeNow', 'cold', 'coldMinDph', 'coldMaxDph', 'startSeconds', 'priceUsdPerSecond', 'maxUsd', 'checkedAt', 'stale'], 'properties': {'cold': {'type': 'number'}, 'warm': {'type': 'number'}, 'stale': {'type': 'boolean'}, 'maxUsd': {'type': ['number', 'null']}, 'online': {'type': 'boolean'}, 'disabled': {'type': 'boolean'}, 'checkedAt': {'type': 'object', 'required': ['warm', 'cold'], 'properties': {'cold': {'type': ['string', 'null']}, 'warm': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'coldMaxDph': {'type': ['number', 'null']}, 'coldMinDph': {'type': ['number', 'null']}, 'warmFreeNow': {'type': 'number'}, 'startSeconds': {'type': ['number', 'null']}, 'priceUsdPerSecond': {'anyOf': [{'type': 'object', 'required': ['min', 'max'], 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'description': "Capacity agentic.no starts on demand. online: one of agentic.no's own machines serves the model right now (a third-party seller does not count; the row's own online stays false so SDKs up to 0.2 skip it); disabled: nothing will be started (the pool is switched off or cannot take payment); warm: stopped machines with the model on disk; warmFreeNow: how many of their GPUs are free now; cold/coldMinDph/coldMaxDph: rentable vast.ai offers, and vast's hourly price for a whole offer, not what you pay; startSeconds: expected wait (0 when one of agentic.no's own machines serves now, null when nothing can start now); priceUsdPerSecond: what the pool charges per second of machine time, informational for now; maxUsd: the most a call that starts capacity asks you to authorize; stale: a vast check is overdue, so the counts may be out of date", 'additionalProperties': False}, 'slug': {'type': 'string', 'const': 'pool'}, 'model': {'type': 'string'}, 'mcpUrl': {'type': 'null'}, 'online': {'type': 'boolean', 'const': False}, 'baseUrl': {'type': 'string', 'description': "Call it like any baseUrl: agentic.no's own running machine serves it at its own price, otherwise capacity starts"}, 'modality': {'type': 'string'}, 'operator': {'type': 'string', 'const': 'agentic-pool', 'description': "Always agentic-pool: the capacity this row starts runs on the pool's rented vast.ai machines"}, 'sellerId': {'type': 'null'}, 'probeScore': {'type': 'null'}, 'displayName': {'type': 'string'}, 'lastProbeAt': {'type': 'null'}, 'maxTokensCap': {'type': 'null'}, 'priceUsdPerCall': {'type': ['number', 'null'], 'description': 'The 402 maximum for a call that has to start capacity; null when the pool has no machine to price a start with. A price does not mean a start is possible: check pool.disabled and pool.startSeconds'}}, 'description': 'Capacity agentic.no starts on demand (recognise it by pool, or sellerId null)', 'additionalProperties': False}]}}}, 'additionalProperties': False}
get_pricing
Get a seller's pricing
All offers from one seller. priceUsdPerCall is a flat fee per call; for chat and embedding it already includes maxTokensCap.
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['sellerId'], 'properties': {'sellerId': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['offers'], 'properties': {'offers': {'type': 'array', 'items': {'type': 'object', 'required': ['model', 'modality', 'priceUsdPerCall', 'maxTokensCap', 'baseUrl'], 'properties': {'model': {'type': 'string'}, 'baseUrl': {'type': 'string', 'description': 'OpenAI-compatible base URL for this model'}, 'modality': {'type': 'string'}, 'maxTokensCap': {'type': ['number', 'null'], 'description': 'Hard cap on max_tokens for chat and embedding calls; null for other modalities'}, 'priceUsdPerCall': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
已添加
get_pricing
2026年10月3日 02:40
已添加
find_provider
2026年10月3日 02:40