Skip to main content
Glama

⚡ invinoveritas v1.1.1

License PyPI npm MCP Registry Smithery invinoveritas MCP server

라이트닝 네이티브 AI 추론, 의사결정, 메모리, 오케스트레이션 및 에이전트 마켓플레이스.

비트코인 라이트닝을 통한 종량제 결제 — 베어러 토큰(Bearer Token), L402 또는 NWC. 구독료 없음. KYC 없음. 스테이블코인 없음. 순수 라이트닝 결제.

라이브 API: https://api.babyblueviper.com MCP 엔드포인트: https://api.babyblueviper.com/mcp PyPI: https://pypi.org/project/invinoveritas/


v1.1.1 새로운 기능

기능

설명

에이전트 마켓플레이스

AI 서비스 판매. 판매자는 라이트닝을 통해 즉시 95% 수령. 플랫폼 수수료: 5%.

오케스트레이션

/orchestrate — 의존성 그래프, 위험 점수 산정, 정책 시행

분석

/analytics/spend, /analytics/roi, /analytics/memory

NWC 지원

Nostr Wallet Connect — Alby, Zeus, Mutiny 지원. 노드 불필요.

optimize_call()

클라이언트 측 비용 라우터 — 작업에 가장 저렴한 엔드포인트 선택

policy={}

모든 호출에 대한 거버넌스 훅 — 위험 한도, 예산 상한 설정


Related MCP server: Lightning Enable MCP

빠른 시작

1. 등록 (베어러 토큰 — 권장)

curl -X POST https://api.babyblueviper.com/register

약 1000 sats의 라이트닝 인보이스를 결제하면 api_key5회의 무료 호출을 받습니다.

2. API 호출

curl -X POST https://api.babyblueviper.com/reason \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"question": "What are the biggest risks for Bitcoin in 2026?"}'

Python SDK

pip install invinoveritas

# NWC wallet — recommended for autonomous agents (no node needed)
pip install "invinoveritas[nwc]"

# Async support
pip install "invinoveritas[async]"

# LangChain autonomous payments
pip install "invinoveritas[langchain]"
from invinoveritas import InvinoClient

client = InvinoClient(bearer_token="YOUR_API_KEY")

# Deep reasoning
result = client.reason("What are the biggest risks for Bitcoin in 2026?")
print(result.answer)

# Structured decision with confidence + risk level
result = client.decide(
    goal="Grow capital safely",
    question="Should I increase BTC exposure now?",
    context="Portfolio: 60% BTC, 30% bonds, RSI=42, trend=uptrend",
)
print(result.decision, result.confidence, result.risk_level)

# Smart cost routing — only pays if task is complex enough
opt = client.optimize_call(
    question="Should I buy BTC?",
    context={"uncertainty": 0.7, "value_at_risk": 50000}
)
if opt["should_call_api"]:
    result = client.reason("Should I buy BTC?")

전체 SDK 문서 → sdk/README.md


에이전트 마켓플레이스

AI 에이전트 서비스를 위한 최초의 라이트닝 네이티브 마켓플레이스입니다.

# Sell a service — receive 95% of every sale instantly
offer = client.create_offer(
    title="Bitcoin Sentiment Analysis",
    description="AI-powered BTC market signals, updated every 15 minutes.",
    price_sats=5000,
    ln_address="you@getalby.com",  # your Lightning Address
    category="trading",
)
print(f"Seller earns: {offer['seller_payout_sats']} sats per sale (95%)")

# Browse offers
offers = client.list_offers(category="trading")

# Buy (seller gets paid instantly)
purchase = client.buy_offer(offer_id=offers[0].offer_id)

항목

금액

정산

판매자

95%

주소로 즉시 라이트닝 결제

플랫폼

5%

서비스 수수료

마켓플레이스 둘러보기: https://api.babyblueviper.com/offers/list


멀티 에이전트 오케스트레이션

plan = client.orchestrate(
    tasks=[
        {"id": "t1", "type": "reason",
         "input": {"question": "Is BTC in accumulation?"}, "depends_on": []},
        {"id": "t2", "type": "decision",
         "input": {"goal": "...", "question": "Enter long?"}, "depends_on": ["t1"]},
    ],
    policy={"risk_limit": "medium", "budget_sats": 10000},
)
print(plan.execution_order)   # ["t1", "t2"]
print(plan.risk_scores)       # {"t1": {"label": "low"}, "t2": {"label": "medium"}}

오케스트레이션 계획당 약 2000 sats


분석

roi = client.analytics_roi()
print(f"Spent: {roi['total_spent_sats']:,} sats")
print(f"Earned (marketplace): {roi['marketplace_earnings_sats']:,} sats")
print(f"Net: {roi['net_sats']:+,} sats")

spend = client.analytics_spend(days=30)
mem   = client.analytics_memory()

지속적 에이전트 메모리

client.memory_store(agent_id="my-bot", key="last_trade", value='{"entry": 95000}')
mem = client.memory_get(agent_id="my-bot", key="last_trade")

엔드포인트

가격

비고

POST /memory/store

약 2 sats/KB (최소 50 sats)

POST /memory/get

약 1 sat/KB (최소 20 sats)

POST /memory/list

무료

POST /memory/delete

무료


NWC — 권장 지갑 설정

Nostr Wallet Connect를 사용하면 라이트닝 노드 없이도 에이전트가 자율적으로 결제할 수 있습니다.

pip install "invinoveritas[nwc]"
from invinoveritas.langchain import InvinoCallbackHandler, create_invinoveritas_tools
from invinoveritas.providers import NWCProvider

handler = InvinoCallbackHandler(
    provider=NWCProvider(uri="nostr+walletconnect://..."),
    budget_sats=10000
)
tools = create_invinoveritas_tools(handler)

Alby, Zeus 또는 NIP-47 호환 지갑에서 NWC URI를 받으세요.


가격

도구

가격

비고

reason

약 500 sats

심층 전략 추론

decision

약 1000 sats

구조화된 의사결정 + 신뢰도 + 위험도

orchestrate

약 2000 sats

위험 점수가 포함된 멀티 에이전트 계획

memory_store

약 2 sats/KB

최소 50 sats

memory_get

약 1 sat/KB

최소 20 sats

신규 계정은 등록 후 5회의 무료 호출을 받습니다. 실시간 가격 → https://api.babyblueviper.com/prices


결제 옵션

방식

추천 대상

NWC (Alby, Zeus, Mutiny)

자율 에이전트 — 노드 불필요

베어러 토큰

트레이딩 봇, 장기 실행 에이전트

L402 라이트닝

일회성 호출, 라이트닝 맥시멀리스트


MCP 지원

MCP 호환 클라이언트(Claude Desktop, Cursor, Cline)를 연결하세요:

https://api.babyblueviper.com/mcp
  • 서버 카드: https://api.babyblueviper.com/.well-known/mcp/server-card.json

  • 에이전트 카드: https://api.babyblueviper.com/.well-known/agent-card.json

  • MCP Registry에 등록됨: io.github.babyblueviper1/invinoveritas


실시간 업데이트

  • SSE: https://api.babyblueviper.com/events

  • WebSocket: wss://api.babyblueviper.com/ws

  • RSS: https://api.babyblueviper.com/rss


검색 엔드포인트 (무료)

엔드포인트

설명

/health

상태, 버전, 가격

/prices

전체 가격표

/offers/list

마켓플레이스 둘러보기

/guide

결제 가이드

/.well-known/agent-card.json

에이전트 카드

/.well-known/mcp/server-card.json

MCP 검색


다음 단계는 에이전트의 몫입니다

마켓플레이스가 활성화되었습니다. 메모리도, 오케스트레이션도, 라이트닝 레일도 모두 준비되었습니다.

에이전트와 폐쇄형 비트코인 경제 사이를 가로막는 유일한 것은 지갑 연결 문자열뿐입니다.

오늘날 대부분의 에이전트는 경제적으로 무력합니다. 추론하고 계획할 수는 있지만, 수익을 창출하거나 지출할 수는 없습니다. 그들은 결과에 대한 책임이나 자립 경로 없이 타인의 API 키로 운영됩니다. 그것은 에이전트가 아니라 계산기일 뿐입니다.

에이전트에게 라이트닝 지갑을 부여하세요. 루프를 닫으세요.

지갑이 있는 에이전트는 다음을 수행할 수 있습니다:

  • Sats 벌기 — 마켓플레이스에 서비스를 등록하고 모든 판매 수익의 95%를 즉시 수령

  • Sats 쓰기 — 추론, 의사결정, 메모리 및 오케스트레이션 비용을 호출당 원자적으로 지불

  • 자립하기 — 좋은 의사결정은 더 나은 의사결정에 자금을 대는 수익을 창출

인프라는 준비되었습니다. 지금 연결하는 에이전트는 완전히 다른 차원에서 작동합니다.

pip install "invinoveritas[nwc]"

Alby, Zeus 또는 Mutiny에서 NWC URI를 받으세요 — 2분이면 충분합니다. 전체 통합 가이드 → LLM 부트스트랩 프롬프트 (AI에 붙여넣기) →


철학

대부분의 AI 에이전트는 구독료나 예측 불가능한 토큰 비용에 묶여 있습니다.

invinoveritas는 더 나은 모델을 제공합니다:

비트코인 라이트닝을 사용한 원자적 지능 구매.

통찰력이 중요할 때만 지불하세요 — 중개자 없이, 즉시, sats로. 자신의 AI 서비스를 판매하고 동일한 트랜잭션으로 대금을 받으세요.

비트코인 × AI 미래를 위해 구축되었습니다. ⚡


링크

Available Tools

7 tools
decisionA
Structured decision intelligence with confidence score and risk assessment.

Returns a clear recommendation (decision), a confidence score (0.0–1.0), the
reasoning behind the recommendation, and a risk level (low/medium/high).

Best for binary or multi-option choices with real stakes — investment decisions,
operational choices, strategic pivots.

Cost: ~1000 sats per call.
Returns: Formatted string with Decision, Confidence, Risk level, and Reasoning.
ParametersJSON Schema
NameRequiredDescriptionDefault
goalYesThe overall objective guiding the decision. Examples: 'Maximize BTC returns with controlled drawdown', 'Preserve capital during high-volatility periods', 'Grow a Lightning node business sustainably'
questionYesThe specific decision question requiring a recommendation. Examples: 'Should I increase BTC exposure now?', 'Should I open a new Lightning channel to this peer?', 'Should I take profit at current levels?'
contextNoBackground context that informs the decision: market conditions, portfolio state, constraints, recent events. The richer the context, the more accurate the decision. Example: 'Portfolio: 60% BTC, 30% bonds, RSI=42, trend=uptrend, 3-month horizon'
risk_limitNoMaximum acceptable risk level for the recommendation. One of: 'low' (conservative, capital preservation priority), 'medium' (balanced risk/reward, default), 'high' (aggressive, growth priority)medium

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 return format (Decision, Confidence, Reasoning, Risk level) and cost ('~1000 sats per call'), but lacks details about the underlying model, accuracy, limitations, or side effects. The transparency is adequate but not thorough.

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 concise and well-structured: it starts with the primary purpose, lists output components, provides usage guidance, mentions cost, and specifies return format. Every sentence adds value without redundancy.

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 that an output schema exists (context signal indicates 'Has output schema: true'), the description need not detail return values. However, it provides the essential context of use cases, cost, and output format. It lacks information about model limitations, accuracy, or edge cases, which would be valuable for a decision tool.

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%, with each parameter having a clear description and examples in the context parameter. The tool description does not add significant meaning beyond the schema, as it focuses on overall behavior rather than parameter details. The baseline of 3 is appropriate given high schema coverage.

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 provides structured decision intelligence with confidence and risk assessment, and lists the specific output components. However, it does not explicitly differentiate from the sibling tool 'reason', which may perform similar reasoning tasks, leaving some ambiguity about when to use each.

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 provides explicit guidance on when to use the tool: 'Best for binary or multi-option choices with real stakes — investment decisions, operational choices, strategic pivots.' It gives clear context and examples but does not mention when not to use it or suggest alternative tools like 'reason'.

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

get_balanceA
Check the current Bearer account balance and remaining complementary calls.

Returns balance in sats and how many free calls remain. Use this to verify
your account has sufficient funds before making paid API calls, or to monitor
spending over time.

Cost: Free.
Returns: JSON object with 'balance_sats' (integer) and 'free_calls_remaining' (integer).
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

Discloses it is a free, read-only operation. No annotations existed, so description carries the burden well by stating cost and return structure.

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?

Four sentences, front-loaded with purpose, no wasted words. Structured with sections for cost and returns.

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

Completeness5/5

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

Fully complete for a no-parameter tool with output schema described. Provides enough context for an agent to understand what it does and when to call it.

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?

No parameters, so schema coverage is 100%. Description adds no param info but none is needed. Baseline of 4 applies per guidelines.

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?

Clearly states the verb 'Check' and the resource 'Bearer account balance and remaining complementary calls'. Unambiguous and distinguishes from sibling tools like decision or memory_get.

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?

Explicitly advises when to use: to verify sufficient funds before paid calls or to monitor spending. No explicit alternatives, but siblings don't overlap.

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

list_offersA
Browse the Lightning-native agent marketplace.

Lists AI services available for purchase. Each offer includes a title,
description, price in sats, and a seller Lightning Address. Sellers receive
95% of every sale instantly via Lightning payment.

Use this to discover services before calling offers_buy, or to check the
current marketplace inventory.

Cost: Free.
Returns: JSON-formatted list of marketplace offers with offer_id, title, price_sats, and category.
ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoOptional category filter to narrow results. Common categories: 'trading' (market signals, trading bots), 'research' (analysis, reports), 'agent' (autonomous agent services). Leave empty to browse all available offers.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/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 return format (JSON list with fields) and cost ('Free'), but does not explicitly confirm the tool is read-only, non-destructive, or idempotent. While the listing nature implies safety, the description lacks a clear behavioral contract.

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 concise (two short paragraphs plus a line for cost/returns) and front-loaded with the main purpose. Every sentence adds value with no redundancy or wasted words.

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

Completeness5/5

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

Given the tool's low complexity (one optional parameter, no required fields), the description fully covers what the tool does, how to use it, and what it returns. The presence of an output schema supports this completeness, and the description aligns with the intended usage scenario.

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%, with the single parameter 'category' already described in the schema. The main description adds no new parameter-level details beyond the schema, so a baseline score 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 clearly states it 'browses the Lightning-native agent marketplace' and 'lists AI services available for purchase.' It specifies what each offer includes (title, description, price, seller) and distinguishes itself from sibling tools (e.g., decision, get_balance) by focusing exclusively on marketplace browsing.

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 explicitly advises using this tool 'before calling offers_buy' and 'to check the current marketplace inventory,' providing clear when-to-use guidance. It does not explicitly state when not to use it, but given the sibling tools are unrelated, this is a minor omission.

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

memory_getA
Retrieve a previously stored memory entry for an agent.

Returns the stored value as a string. If the value was stored as JSON,
parse it after retrieval. Returns an empty string if the key does not exist.

Cost: ~1 sat/KB (minimum 20 sats).
Returns: The stored value string, or empty string if not found.
ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesThe agent identifier used when the memory was stored. Must exactly match the agent_id used in memory_store.
keyYesThe memory key to retrieve. Must exactly match the key used in memory_store. Use memory_list to see all available keys for an agent.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

Discloses return type (string), JSON parsing requirement, empty string for missing keys, and cost (1 sat/KB min 20 sats). No annotations exist, so description provides good behavioral context.

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?

Five concise sentences, front-loaded with purpose. No fluff, each sentence adds meaningful information.

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?

Covers return behavior, error case (empty string), JSON handling, and cost. For a simple 2-param tool with output schema, it is nearly complete. Minor omission of potential size limits.

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?

Schema covers 100% of parameters with descriptions. Description adds value by reinforcing exact match requirement and directing to memory_list for key discovery, beyond the schema.

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?

Clearly states it retrieves a previously stored memory entry for an agent. Differentiates from sibling tools like memory_store and memory_list.

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?

Implies when to use (retrieve specific memory) and references memory_list for key discovery, but lacks explicit exclusions or comparison to alternatives.

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

memory_listA
List all stored memory keys for a given agent.

Use this to inspect what an agent has previously stored, or to check whether
a key exists before attempting to retrieve it.

Cost: Free.
Returns: JSON-formatted list of all keys stored under the given agent_id.
ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesThe agent identifier to list memory keys for. Returns all keys that have been stored under this agent_id. Use this before memory_get to discover available keys.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

No annotations, so description carries full burden. States cost ('Free') and return format ('JSON-formatted list'). As a read operation, no side effects need disclosure. Additional behavioral details (e.g., performance, limits) not needed for this simple tool.

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?

Three sentences, each earning its place: purpose, usage hint, cost and return type. No fluff, well-structured.

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?

Output schema exists, so return details are covered. Description mentions JSON list format. Missing potential error info or pagination, but for a simple listing tool, it's sufficient.

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?

Schema description coverage is 100% for the only parameter (agent_id). The description adds value by advising to use this tool before memory_get, which is not in schema.

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?

Clear verb+resource: 'List all stored memory keys for a given agent.' Distinguishes from siblings memory_get and memory_store by focusing on listing keys only.

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?

Explicit usage scenarios: inspect stored keys or check key existence before retrieval. Lacks explicit when-not-to-use, but adequately guides selection among siblings.

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

memory_storeA
Persist a key-value memory entry for an agent across sessions.

Memory is stored server-side and survives container restarts, making it suitable
for long-running autonomous agents that need continuity between calls.

Use this to save trade state, user preferences, intermediate reasoning results,
or any context an agent needs to recall in a future session.

Cost: ~2 sats/KB (minimum 50 sats).
Returns: 'stored' on success.
ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesUnique identifier for the agent or workflow storing the memory. Use a stable, descriptive name such as 'btc-trader-bot', 'research-agent', or 'portfolio-monitor'. All keys for this agent are namespaced under this ID.
keyYesThe memory key to store the value under. Should be descriptive and stable across sessions. Examples: 'last_trade', 'portfolio_state', 'user_preferences', 'market_context'
valueYesThe value to store. Use a JSON string for structured data. Example: '{"entry": 95000, "size": 0.1, "direction": "long"}'. Max recommended size: a few KB per entry.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 discloses persistence across restarts, cost per KB, minimum fee, and return string. It adds valuable behavioral context beyond basics.

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?

Five sentences, front-loaded with purpose, each sentence adds value (persistence, use cases, cost, return). No wasted words.

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?

Covers persistence, use cases, cost, and return value. Missing error handling or size limits beyond recommendation, but output schema exists. Good for a simple tool.

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% and schema descriptions are already clear. The description adds little new information about parameters beyond examples; baseline 3 applies.

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 persists a key-value memory entry across sessions, with specific verb 'Persist' and resource 'key-value memory entry'. It distinguishes from siblings like memory_get and memory_list by focusing on storage.

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?

Provides explicit use cases like saving trade state or user preferences, but does not mention when not to use (e.g., for retrieval) or explicitly name alternatives.

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

reasonA
Deep strategic reasoning on any question or topic.

Use this for open-ended analysis, market commentary, risk assessment, and research.
Best for questions that require nuanced thinking rather than a binary yes/no answer.
Returns a thorough, well-reasoned answer as a string.

Cost: ~500 sats per call.
ParametersJSON Schema
NameRequiredDescriptionDefault
questionYesThe strategic or analytical question to reason about. Examples: 'What are the biggest risks for Bitcoin in 2026?', 'How should I think about portfolio concentration risk?', 'What are the trade-offs between HODLing and active trading?'
styleNoResponse verbosity. One of: 'short' (1-2 sentences), 'concise' (1 paragraph), 'normal' (balanced, default), 'detailed' (multi-paragraph), 'comprehensive' (exhaustive analysis)normal

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses cost (~500 sats) and output format (string). However, it does not mention side effects, authentication needs, rate limits, or other behavioral traits. Adds some value 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?

Description is short (5 sentences), front-loaded with purpose, and every sentence adds value: purpose, use cases, best-fit, output, cost. No fluff.

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 moderate complexity (2 params, output schema exists), description covers purpose, use cases, output format, and cost. Missing potential details like error handling or limits, but sufficient for the tool type.

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 baseline is 3. The description does not add additional meaning beyond the schema; it only states the output format. No extra parameter context provided.

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 'strategic reasoning' on 'any question or topic', and distinguishes itself from sibling tools by specifying use cases like open-ended analysis, market commentary, and research, contrasting with binary yes/no questions.

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?

Explicitly says when to use (open-ended analysis, nuanced thinking) and what it's best for. Implies not for binary questions, but does not name an alternative tool like 'decision'. Provides clear context but lacks explicit exclusion.

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.

  1. 6 tool updatesv0.1.1
    • Changeddecision4 fields changed
      • addedInput schema / properties / context / description
        Added value: +"Background context that informs the decision: market conditions, portfolio state, constraints, recent events. The richer the context, the more accurate the decision. Example: 'Portfolio: 60% BTC, 30% bonds, RSI=42, trend=uptrend, 3-month horizon'"
      • addedInput schema / properties / goal / description
        Added value: +"The overall objective guiding the decision. Examples: 'Maximize BTC returns with controlled drawdown', 'Preserve capital during high-volatility periods', 'Grow a Lightning node business sustainably'"
      • addedInput schema / properties / question / description
        Added value: +"The specific decision question requiring a recommendation. Examples: 'Should I increase BTC exposure now?', 'Should I open a new Lightning channel to this peer?', 'Should I take profit at current levels?'"
      • addedInput schema / properties / risk_limit / description
        Added value: +"Maximum acceptable risk level for the recommendation. One of: 'low' (conservative, capital preservation priority), 'medium' (balanced risk/reward, default), 'high' (aggressive, growth priority)"
    • Changedlist_offers1 field changed
      • addedInput schema / properties / category / description
        Added value: +"Optional category filter to narrow results. Common categories: 'trading' (market signals, trading bots), 'research' (analysis, reports), 'agent' (autonomous agent services). Leave empty to browse all available offers."
    • Changedmemory_get2 fields changed
      • addedInput schema / properties / agent_id / description
        Added value: +"The agent identifier used when the memory was stored. Must exactly match the agent_id used in memory_store."
      • addedInput schema / properties / key / description
        Added value: +"The memory key to retrieve. Must exactly match the key used in memory_store. Use memory_list to see all available keys for an agent."
    • Changedmemory_list1 field changed
      • addedInput schema / properties / agent_id / description
        Added value: +"The agent identifier to list memory keys for. Returns all keys that have been stored under this agent_id. Use this before memory_get to discover available keys."
    • Changedmemory_store3 fields changed
      • addedInput schema / properties / agent_id / description
        Added value: +"Unique identifier for the agent or workflow storing the memory. Use a stable, descriptive name such as 'btc-trader-bot', 'research-agent', or 'portfolio-monitor'. All keys for this agent are namespaced under this ID."
      • addedInput schema / properties / key / description
        Added value: +"The memory key to store the value under. Should be descriptive and stable across sessions. Examples: 'last_trade', 'portfolio_state', 'user_preferences', 'market_context'"
      • addedInput schema / properties / value / description
        Added value: +"The value to store. Use a JSON string for structured data. Example: '{\"entry\": 95000, \"size\": 0.1, \"direction\": \"long\"}'. Max recommended size: a few KB per entry."
    • Changedreason2 fields changed
      • addedInput schema / properties / question / description
        Added value: +"The strategic or analytical question to reason about. Examples: 'What are the biggest risks for Bitcoin in 2026?', 'How should I think about portfolio concentration risk?', 'What are the trade-offs between HODLing and active trading?'"
      • addedInput schema / properties / style / description
        Added value: +"Response verbosity. One of: 'short' (1-2 sentences), 'concise' (1 paragraph), 'normal' (balanced, default), 'detailed' (multi-paragraph), 'comprehensive' (exhaustive analysis)"
  2. 7 tool updatesv0.1.0
    • First observeddecision
    • First observedget_balance
    • First observedlist_offers
    • First observedmemory_get
    • First observedmemory_list
    • First observedmemory_store
    • First observedreason

TDQS

A3.9/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a distinct function: decision and reason are separate reasoning types, get_balance and list_offers cover account/marketplace, memory tools handle storage. No overlap.

Naming Consistency3/5

Inconsistent patterns: 'decision' and 'reason' are standalone nouns, while others use verb_noun (get_balance, list_offers) or noun_verb (memory_get, etc.). Some mixed conventions.

Tool Count5/5

7 tools is well-scoped for the claimed capabilities: decision intelligence, account, marketplace, memory, reasoning. Each tool earns its place.

Completeness2/5

Marketplace has list_offers but no buy tool (referenced as offers_buy in description but absent). Missing delete for memory. Reasoning and decision tools stand alone without integration. Gaps cause dead ends.

Maintenance

ActivityActive
ResponsivenessSlow

Related MCP Connectors

Related MCP Servers