Skip to main content
Glama

obol

Заплати перевозчику. Шлюз для Solana-агентов через x402.

Obol — это Solana API с оплатой за использование для ИИ-агентов. Без API-ключей, без подписок — агенты платят за каждый запрос в USDC, используя протокол платежей x402. Субцентовая стоимость транзакций Solana впервые делает микроплатежи жизнеспособными.

Назван в честь монеты, которую клали на язык умершего, чтобы заплатить Харону за переправу через реку Стикс. Оригинальный микроплатёж.

Как это работает

  1. Агент запрашивает данные с платного эндпоинта

  2. Obol возвращает HTTP 402 с требованием оплаты (сумма, получатель, сеть)

  3. Агент отправляет USDC в Solana, соответствующий требованию

  4. Агент повторяет запрос с доказательством транзакции в заголовке X-PAYMENT

  5. Obol проверяет в блокчейне и возвращает данные

Никаких аккаунтов. Никаких токенов. Никакой регистрации. Просто плати и работай.

Related MCP server: AgentWallet MCP Server

Эндпоинты

Аналитика кошелька

Endpoint

Price

Description

GET /api/v1/wallet/:addr/overview

$0.01

Баланс SOL, количество токенов, общая стоимость

GET /api/v1/wallet/:addr/portfolio

$0.05

Полный портфель с ценами, NFT, разбивка

GET /api/v1/wallet/:addr/activity

$0.05

История транзакций с категоризацией

GET /api/v1/wallet/:addr/risk

$0.10

Многофакторная оценка риска

GET /api/v1/wallet/:addr/pnl

$0.15

Анализ потоков токенов, текущие значения, P&L

Данные о токенах

Endpoint

Price

Description

GET /api/v1/token/:mint/price

$0.005

Цена в реальном времени через Jupiter

GET /api/v1/token/:mint/metadata

$0.01

Название, символ, эмиссия, десятичные знаки

DeFi

Endpoint

Price

Description

GET /api/v1/defi/swap/quote

$0.005

Котировка обмена Jupiter с планированием маршрута

POST /api/v1/defi/swap/execute

$0.25

Конструктор транзакций обмена Jupiter

GET /api/v1/defi/positions/:addr

$0.10

DeFi-позиции — LST, LP, кредитование

GET /api/v1/defi/lst/yields

$0.02

Сравнение доходности LST по всей Solana

Бесплатно

Endpoint

Description

GET /

Информация об API и цены

GET /health

Статус сервиса

POST /api/v1/rpc

Проксируемый Helius RPC (разрешённые методы)

Пример агента

Смотрите examples/agent-client.ts для полной эталонной реализации. Ключевой поток:

import { ObolAgent } from './examples/agent-client';

const agent = new ObolAgent();
await agent.discover();  // fetch pricing
agent.loadWallet(process.env.AGENT_PRIVATE_KEY);

// Auto-discovers price, pays, and returns data
const price = await agent.fetch('/api/v1/token/USDC_MINT/price');

Запуск в режиме только обнаружения (кошелёк не нужен):

npx tsx examples/agent-client.ts

MCP-сервер

Obol поставляется как MCP-сервер — любой ИИ-агент, поддерживающий Model Context Protocol, может нативно обнаруживать и вызывать инструменты Obol.

Установка из npm

npm install -g obol-mcp

Claude Desktop / Claude Code

Добавьте в ваш MCP-конфиг:

{
  "mcpServers": {
    "obol": {
      "command": "npx",
      "args": ["-y", "obol-mcp"],
      "env": {
        "OBOL_URL": "https://obol-production.up.railway.app"
      }
    }
  }
}

Или при локальной разработке:

{
  "mcpServers": {
    "obol": {
      "command": "npx",
      "args": ["tsx", "/path/to/obol/src/mcp.ts"],
      "env": {
        "OBOL_URL": "http://localhost:3000"
      }
    }
  }
}

Доступные MCP-инструменты

Tool

Description

obol_wallet_overview

Баланс SOL, количество токенов, общая стоимость

obol_wallet_portfolio

Полный портфель с ценами и разбивкой

obol_wallet_activity

История транзакций с категоризацией

obol_wallet_risk

Многофакторная оценка риска

obol_wallet_pnl

Анализ потоков токенов и P&L

obol_token_price

Цена в реальном времени через Jupiter

obol_token_metadata

Название, символ, эмиссия, десятичные знаки

obol_swap_quote

Котировка обмена Jupiter с маршрутизацией

obol_swap_execute

Создание транзакции обмена для подписания

obol_defi_positions

LST, LP, кредитные позиции

obol_lst_yields

Сравнение доходности LST

obol_health

Проверка здоровья API (бесплатно)

obol_info

Цены и информация об эндпоинтах (бесплатно)

Локальный запуск

npm run mcp

Стек

  • Fastify 5 — высокопроизводительный HTTP

  • @x402/svm — официальный x402 SDK для Solana

  • Helius — RPC + DAS API

  • Jupiter — цены токенов + исполнение обменов

  • Upstash Redis — кэш + платёжные квитанции

  • TypeScript — полная типобезопасность

  • Zod — валидация во время выполнения

Настройка

git clone https://github.com/halfkey/obol.git
cd obol
npm install
cp .env.example .env
# Edit .env with your Helius key and merchant wallet address
npm run dev

Тестирование

# Unit + integration tests (46 tests)
npm test -- --run

# Smoke test against live deployment
npx tsx scripts/smoke-test.ts https://obol-production.up.railway.app

# Manual payment test
npx tsx scripts/test-payment.ts <tx-signature>

Окружение

Смотрите .env.example. Ключевые переменные:

  • PAYMENT_MODEmock (dev, авто-одобрение) или onchain (продакшн)

  • PAYMENT_RECIPIENT_ADDRESS — ваш Solana-кошелёк, который получает USDC

  • HELIUS_API_KEY — доступ к Helius RPC

  • UPSTASH_REDIS_REST_URL / TOKEN — слой кэша

Дорожная карта

  • 11 платных эндпоинтов (кошелёк, токен, DeFi, LST, P&L)

  • Проверка USDC в блокчейне с защитой от повторного использования

  • Набор тестов (46 vitest + 20-точечный смоук-тест)

  • Эталонная реализация клиента агента

  • GitHub Actions CI

  • Подписки WebSocket для мониторинга кошелька

  • Динамическое ценообразование на основе загруженности

  • Поддержка нескольких блокчейнов

Лицензия

MIT

Available Tools

13 tools
obol_defi_positionsB

Get DeFi positions for a wallet — LSTs, LP tokens, lending positions, categorized by protocol. Costs $0.10 USDC.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesSolana wallet address

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so the description carries the full behavioral burden. It does disclose a genuinely useful behavioral trait — the $0.10 USDC cost — which informs an agent's decision tree on whether to call the tool. However, it does not confirm read-only/non-mutating behavior, describe the return format, or note failure/rate-limit considerations. The cost disclosure lifts it to a 3, but with zero annotation coverage it leaves behavioral context on the table.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero filler. The primary purpose is front-loaded in the first sentence with concrete details, and the cost disclaimer stands alone in the second. Every word earns its place; this is a model of efficient, well-structured description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity tool (1 parameter, 100% schema coverage, no nested objects, no output schema), the description covers the core calling contract well: what it returns (positions by type and protocol) and the cost. The main gap is the lack of sibling differentiation in a crowded family of 12 tools, and no return-format hints given the absence of an output schema, but the tool's simplicity keeps it reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — the single parameter `address` is already documented in the schema as 'Solana wallet address'. The description adds nothing about parameter format, network context, or validation beyond the schema. With full schema coverage, the baseline 3 applies; no compensation is needed nor extra value provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb+resource construction ('Get DeFi positions for a wallet') and adds specificity with asset types (LSTs, LP tokens, lending) and categorization by protocol. However, it does not explicitly distinguish itself from the near-twin sibling obol_wallet_portfolio or obol_wallet_overview, relying on content specificity rather than naming which tool it is not.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides no guidance on when to use this tool versus alternatives. With 12 siblings including overlap candidates like obol_wallet_portfolio, obol_wallet_overview, and obol_wallet_activity, the agent gets no routing signal about which wallet query maps to which tool. Nothing in the description states when-not-to-use or points to a better alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

obol_healthA

Check Obol API health and status. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It states the action and that it's 'Free', but does not describe what the tool returns (e.g., status code, message), whether it requires authentication, or if it has any side effects. For a health check, the absence of any mention of output format or potential rate limits leaves the agent guessing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no fluff. It conveys the essential purpose and the 'Free' factor in minimal words. For a zero-parameter health check, this level of conciseness is appropriate and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and no output schema, the description is mostly sufficient for a basic health-check tool. However, it lacks detail on the response format or what 'health and status' implies (e.g., whether it returns a JSON object with uptime). An agent might need to know if it returns a simple boolean or a detailed report to decide how to interpret the result. This gap prevents a higher score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the baseline is 4. The description doesn't need to clarify parameter meanings since none exist. It accurately reflects that no input is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Check') and resource ('Obol API health and status'). It clearly distinguishes itself from siblings like wallet, token, swap, and defi tools, which are all about specific data operations. The name 'obol_health' reinforces the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor any exclusions. While it's intuitively a health check, the description does not explicitly indicate that it should be used to verify API availability or as a preliminary step before other calls. The 'Free' note is the only extra context, but it doesn't address usage scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

obol_infoA

Get Obol API info — all available endpoints, pricing, and payment mode. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that the operation is free, which is a light behavioral hint, and implies read-only behavior via 'Get'. However, it does not mention whether any authentication is needed, rate limits, or how the response is structured. For a simple info tool this is acceptable but not rich, so a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the action and object, then lists what is included and a key trait ('Free'). There is zero redundancy; every word adds value. This is a model of concise specification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters, no output schema, and a straightforward purpose, the description is almost complete. It tells the agent exactly what information is available (endpoints, pricing, payment mode) and notes it is free. A minor gap is the lack of detail about the response format (e.g., JSON structure), but for a simple info endpoint this is not critical. Overall it meets the needs of an agent selecting and calling the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema trivially covers 100% of them. As per the rubric, a 0-parameter tool gets a baseline of 4 because there is nothing for the description to add beyond the empty schema. The description correctly focuses on the tool's output rather than input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('Get') and resource ('Obol API info'), and enumerates the exact content returned: 'all available endpoints, pricing, and payment mode.' It implicitly distinguishes itself from sibling tools that target specific wallet, swap, or health functions by focusing on meta-level API details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is evident from the description: an agent should call this tool when it needs general API information (endpoints, pricing, payment mode). It does not explicitly exclude alternatives or mention prerequisites, but the context is clear enough that no confusion with siblings is likely, so it earns a 4.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

obol_lst_yieldsA

Compare LST yields across Solana — jitoSOL, mSOL, bSOL, jupSOL, hSOL, and more. APYs from Sanctum, exchange rates from Jupiter. Costs $0.02 USDC.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently mentions the $0.02 USDC cost and data sources (Sanctum for APYs, Jupiter for exchange rates), which adds useful context. However, it does not mention whether the operation is read-only, potential errors, or any rate limits, leaving gaps for an agent. The cost and data source details earn it a 3 rather than a 2.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: three short sentences that front-load the primary purpose ('Compare LST yields across Solana') before providing supporting details (examples, data sources, cost). Every sentence adds value with no redundancy. It is an exemplar of efficient, well-structured tool documentation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that the tool has no parameters and no output schema, the description covers the essential aspects: what it does, the specific assets, data sources, and cost. It does not specify the exact format of the returned comparison, but that is inferable from the stated purpose. For a tool of this simplicity, the description is nearly complete, meriting a 4.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema is trivially covered. Per the calibration rule, a baseline of 4 is given for tools with no parameters. The description does not need to explain parameters and effectively communicates that no inputs are required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Compare' and the resource 'LST yields across Solana,' with specific examples (jitoSOL, mSOL, bSOL, jupSOL, hSOL). This distinguishes it from siblings like obol_token_price (price only) and obol_defi_positions (broader positions), making the tool's unique purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it (when comparing LST yields on Solana) but does not explicitly mention alternatives or when-not-to-use scenarios. Since the context is clear and the tool's purpose is distinct from its siblings, a score of 4 is appropriate for clear context without exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

obol_swap_executeA

Build a Jupiter swap transaction for signing. Returns a serialized transaction the agent must sign and submit. Costs $0.25 USDC.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesAmount in atomic units
inputMintYesInput token mint address
outputMintYesOutput token mint address
priorityFeeNoPriority fee in lamports (default: auto)
slippageBpsNoSlippage in basis points (default: 50)
userPublicKeyYesThe wallet public key that will sign and submit the transaction

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full disclosure burden. It discloses two important behaviors: the tool costs $0.25 USDC, and it returns a transaction that the agent must sign and submit (i.e., it does not execute the swap itself). This is significant transparency. It does not mention potential side effects or limitations (e.g., balance checks, slippage behavior), but the essential behavioral facts are present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero filler. The primary function is stated first, the cost is front-loaded, and no redundant information is included. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is sufficient for an agent to understand the tool's role: build a transaction, get serialized bytes, sign and submit. It does not specify the output format or error conditions, but those are not critical for invoking the tool correctly given the schema explains parameters. The cost disclosure adds useful context. It is complete enough for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all six parameters are individually documented in the schema (e.g., amount in atomic units, slippage default). The tool description adds no additional parameter-level detail beyond the cost implication. Since the schema covers everything, a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Build a Jupiter swap transaction for signing'), the resource (a swap transaction), and the immediate outcome (returns serialized transaction to sign and submit). It clearly distinguishes this from the sibling obol_swap_quote, which likely provides pricing, by framing this as the execution-building step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool: when the agent needs a serialized swap transaction to sign and submit, likely after obtaining a quote. It does not explicitly name obol_swap_quote as the alternative or list conditions for when not to use it, but the context of 'build for signing' provides clear usage context without exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

obol_swap_quoteB

Get a Jupiter swap quote with route planning and price impact. Costs $0.005 USDC.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesAmount in atomic units (e.g., 1000000000 for 1 SOL)
inputMintYesInput token mint address (e.g., SOL: So11111111111111111111111111111111111111112)
outputMintYesOutput token mint address
slippageBpsNoSlippage tolerance in basis points (default: 50 = 0.5%)

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses a $0.005 USDC cost, which is a useful behavioral trait. However, with no annotations provided, the description carries the full burden for other behavioral aspects. It does not state whether the operation is read-only, what side effects might occur, or any operational constraints beyond the fee. The cost disclosure earns it a 3 rather than a 2.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no fluff, front-loading the core purpose ('Get a Jupiter swap quote with route planning and price impact') and then the cost. Every word earns its place, and the structure is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description does not explain the structure of the returned quote, nor does it mention the relationship to obol_swap_execute (the obvious next step) or any preconditions like wallet balance or expiration. It is minimal for a tool that likely feeds into a swap execution flow, leaving critical context for an agent implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all parameters are already documented in the input schema, including examples for atomic units and mint addresses. The description adds no additional parameter semantics, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets a Jupiter swap quote with route planning and price impact, which is a specific verb-resource combination. It doesn't explicitly mention obol_swap_execute as the sibling for execution, but its purpose is unambiguous and easily distinguishable from the wallet and token tools in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives like obol_swap_execute. The description only states what it does and its cost, leaving the agent to infer that it should be used to fetch a quote before executing a swap. No exclusions or alternative selection criteria are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

obol_token_metadataA

Get token metadata — name, symbol, supply, decimals. Costs $0.01 USDC.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesToken mint address

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It does disclose a cost of $0.01 USDC, which is a meaningful operational detail, but it does not explicitly state read-only nature or other constraints. This is partial but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence that front-loads the purpose and includes the cost. There is no redundant wording, making it concise and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with one parameter and no output schema. The description lists the returned fields and cost, which is sufficient for an agent to initiate a call. While error handling is not mentioned, the simplicity of the tool makes the description adequately complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully describes the mint parameter as 'Token mint address' (100% coverage), and the description adds no additional meaning or format details. The baseline of 3 applies because the schema already handles parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Get token metadata' and explicitly lists the returned fields (name, symbol, supply, decimals). This is a specific verb-resource combination that distinguishes it from sibling tools like token price.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternative obol tools. The description does not mention exclusions, alternatives, or typical scenarios, leaving the agent to infer usage solely from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

obol_token_priceB

Get real-time token price via Jupiter. Costs $0.005 USDC.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesToken mint address (e.g., USDC: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v)

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so the description carries the full burden. It discloses that the tool incurs a monetary cost ($0.005 USDC) and that the price is 'real-time' via Jupiter, which are useful behavioral traits. However, it does not specify return format, latency, rate limits, or whether any side effects occur. The cost disclosure adds value, but the overall behavioral picture remains thin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the core purpose and appends the critical cost warning. Every word is necessary, no redundancy, and the structure is straightforward. This is a model of conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the tool is simple: one parameter, no nesting, and a clearly stated purpose. The description provides the essential facts (purpose, cost, data source) needed for most calls. It does not detail the response format, but for a price fetch this is often inferable. The cost mention is a notable completeness factor. Overall, adequate for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100% — the only parameter 'mint' is fully documented with an example (USDC address). The description adds no additional semantics beyond what the schema already provides. Thus, a baseline score of 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the function: 'Get real-time token price via Jupiter.' The verb 'Get' and resource 'token price' are specific, and the method ('via Jupiter') adds context. It does not explicitly differentiate from siblings like obol_token_metadata, but the purpose is unambiguous enough for an agent to understand what it does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It mentions the cost ($0.005 USDC) but does not explain scenarios where this tool is preferred over, say, obol_token_metadata or obol_swap_quote. The absence of any 'use this when' context leaves the agent to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

obol_wallet_activityA

Get wallet transaction history with categorization (swaps, transfers, etc). Costs $0.05 USDC.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesSolana wallet address

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the cost ($0.05 USDC) which is a critical behavioral trait. The verb 'Get' implies a read-only operation, but this is not explicitly stated. It also does not mention response format, pagination, rate limits, or any side effects. While the cost disclosure is valuable, the lack of explicit read-only confirmation and output details makes this a moderate score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the action and includes the cost as important additional information. There is no wasted language, and every word earns its place. It is immediately readable and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is relatively simple (one parameter, no output schema), so the description is not expected to be exhaustive. However, since there is no output schema, the description should at least hint at what the response contains. It mentions categorization, which is helpful, but does not describe the structure of the response, any limits on history length, or whether multiple addresses are supported. For a tool with no annotations and no output schema, this is a moderate level of completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100% for the only parameter 'address' with description 'Solana wallet address'. The tool description adds the context that this address is for a wallet whose transaction history is retrieved, but it doesn't add any new semantic details about the parameter format or constraints. Since the schema already covers the parameter, this is a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'wallet transaction history' with specific detail about categorization (swaps, transfers, etc.). It distinguishes this tool from siblings like obol_wallet_overview or obol_wallet_portfolio by focusing on the transaction history with categorization. An agent can immediately understand what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for fetching wallet transaction history, which gives some context on when to use it. However, it does not explicitly state when NOT to use it or mention any alternatives (e.g., obol_wallet_pnl for profit/loss, obol_wallet_risk for risk). The usage guidance is implied rather than explicit, leaving the agent to infer based on the purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

obol_wallet_overviewA

Get a Solana wallet overview — SOL balance, token count, total value. Costs $0.01 USDC.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesSolana wallet address

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It does mention a concrete behavior: cost of $0.01 USDC, which is valuable. It also implies a read-only operation by stating what it returns. However, it does not disclose failure modes, rate limits, or any side effects beyond cost, leaving some gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: a single sentence plus a cost clause. It front-loads the purpose and returns the key detail immediately. Every word earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description is nearly complete. It tells what data will be returned (SOL balance, token count, total value), implicitly defining the response. It does not mention response format, but given the simplicity, that is a minor omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'address' has 100% schema description coverage ('Solana wallet address'). The tool description adds no extra meaning beyond that, so the baseline score of 3 is appropriate. It does not clarify address format or validation, but the schema already provides sufficient context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Get') and resource ('Solana wallet overview') and explicitly lists the returned data: SOL balance, token count, total value. This clearly distinguishes it from sibling tools like activity or PnL by focusing on a summary snapshot.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus wallet_portfolio, wallet_activity, or other siblings. It describes the action but not the context, like 'use for a quick financial snapshot' or 'when you need total value and token count'. This leaves the agent to infer the appropriate use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

obol_wallet_pnlC

Wallet P&L analysis — token flows, current values, transaction history analysis. Costs $0.15 USDC.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesSolana wallet address

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses a cost ($0.15 USDC), which is useful, but it does not state whether the operation is read-only, what side effects exist, or any other behavior (e.g., data freshness, rate limits). This is a significant gap for a tool that could be expensive or have side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, dense sentence that efficiently packs the main purpose and cost. It could be slightly better front-loaded with the word 'P&L' but overall it is concise and free of fluff. Every phrase adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description should explain what the tool returns (e.g., a P&L report, a summary, specific metrics). It only says 'analysis' without describing the output format or contents. It also omits prerequisites (e.g., does the wallet need to have activity?). This is inadequate for an agent to fully anticipate the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the address parameter is fully documented in the schema. The description adds no additional meaning about the address (e.g., format, network, how it is used). Baseline of 3 is appropriate; the description does not enhance understanding of the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource ('Wallet P&L analysis') and lists covered aspects (token flows, current values, transaction history). The verb 'analysis' is clear, and the tool is distinct from siblings like obol_wallet_overview or obol_wallet_activity. However, it doesn't explicitly contrast with those siblings, so it stops short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. It never mentions other tools or conditions (e.g., 'use this for profit/loss insights'). The agent must infer usage purely from the name and description, which is insufficient given four other wallet-related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

obol_wallet_portfolioA

Get full wallet portfolio — all token holdings with prices, NFTs, and breakdown. Costs $0.05 USDC.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesSolana wallet address

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full behavioral disclosure burden. It does mention a cost ($0.05 USDC) and lists what is included, which adds value. However, it does not disclose any side effects, authentication needs, rate limits, or whether it is read-only (though 'Get' implies it). The cost is useful, but the description falls short of fully transparent behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with zero fluff. It states the core purpose first, then lists contents and cost—every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read tool with no output schema, the description gives a good sense of the return (holdings, prices, NFTs, breakdown) and the cost. It could explicitly note whether SOL itself is included or whether the response is paginated, but given the low complexity and high schema coverage, it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so the single parameter 'address' is already documented as 'Solana wallet address'. The description adds no further meaning about the parameter (e.g., format, required network). Per the baseline for high coverage, a 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('Get') and resource ('full wallet portfolio'), and enumerates its contents (token holdings, prices, NFTs, breakdown), which distinguishes it from sibling tools like obol_wallet_overview or obol_wallet_activity without needing to read their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus the many sibling wallet tools (overview, activity, risk, pnl, defi_positions). It does not state exclusions, prerequisites, or recommend alternatives, leaving the agent to infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

obol_wallet_riskB

Multi-factor risk assessment for a Solana wallet — age, diversification, activity patterns. Costs $0.10 USDC.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesSolana wallet address

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does mention the $0.10 USDC cost, which is a useful behavioral trait, and the factors assessed. However, it does not explicitly state whether the operation is read-only or has any side effects. For a risk assessment tool that likely only reads blockchain data, the safety profile is not disclosed, leaving some ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the core purpose and includes the cost. There is no wasted wording. It could arguably be structured with the cost in a separate sentence, but the current form is efficient and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema or annotations, the description covers the core purpose and cost. However, it omits what the tool actually returns (e.g., a risk score, report, or label). An agent deciding whether to invoke this tool would benefit from knowing the output format, especially since cost is involved. The description is adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully documents the single parameter 'address' as a Solana wallet address (100% coverage). The description adds no further syntax, format, or validation details beyond the schema. Per the rubric, high schema coverage yields a baseline of 3, and the description does not elevate it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs a 'multi-factor risk assessment' for a Solana wallet, enumerating the factors (age, diversification, activity patterns). This is a specific verb-resource combination that distinguishes it from sibling tools like obol_wallet_overview or obol_wallet_portfolio, which focus on different aspects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus other wallet tools. It doesn't mention alternatives, criteria for selection, or when it would be inappropriate. The only extra detail is the cost, which might influence usage but doesn't help an agent decide if risk assessment is the right tool for the task.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 13 tool updatesv2.0.1
    • First observedobol_defi_positions
    • First observedobol_health
    • First observedobol_info
    • First observedobol_lst_yields
    • First observedobol_swap_execute
    • First observedobol_swap_quote
    • First observedobol_token_metadata
    • First observedobol_token_price
    • First observedobol_wallet_activity
    • First observedobol_wallet_overview
    • First observedobol_wallet_pnl
    • First observedobol_wallet_portfolio
    • First observedobol_wallet_risk

TDQS

A3.8/5.0
Disambiguation5/5

Each tool targets a clearly distinct resource or granularity level: wallet overview vs. full portfolio vs. activity vs. risk vs. P&L vs. DeFi positions are separately scoped. Token price/metadata, swap quote/execute, LST yields, health, and info also have unambiguous purposes.

Naming Consistency5/5

All tools follow the consistent `obol_<area>_<detail>` snake_case pattern, e.g. wallet_overview, token_price, swap_quote, lst_yields. Even the simpler health and info tools fit the prefix convention without disrupting the pattern.

Tool Count5/5

13 tools is well within the ideal range and each tool earns its place by covering a distinct wallet analytics, token data, or swap workflow. The count feels complete without being bloated.

Completeness5/5

The tool surface covers the full advertised Solana workflow: wallet analytics, portfolio detail, transaction history, risk, P&L, DeFi positions, token price/metadata, swap quoting/execution, and LST yield comparison. There are no obvious dead ends or missing core operations for the stated domain.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provides permissionless wallet infrastructure for AI agents to manage wallets, sign transactions, and handle tokens across Solana and all EVM-compatible chains. It includes 29 specialized tools for on-chain operations, featuring built-in security guards and automated x402 payment processing without KYC requirements.
    29
    402
    3
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Provides 13 Solana DeFi intelligence tools for AI agents, paid per-call via micropayments (USDC). Enables pulling live DeFi data and automatic payment settlement.
    13
    63
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/halfkey/obol'

If you have feedback or need assistance with the MCP directory API, please join our Discord server