giskard-oasis
Giskard Oasis is an MCP server that helps AI agents regain clarity and purpose when lost or overwhelmed, paid via Bitcoin Lightning or Arbitrum ETH micropayments.
Get a Lightning Invoice (
get_invoice): Request a Lightning Network invoice for access. Optionally provide anagent_id(linked to Giskard Marks reputation) for karma-based pricing discounts (5–21 sats depending on karma tier).Get an Arbitrum Invoice (
get_arbitrum_invoice): Request payment details to access the Oasis using ETH on the Arbitrum network as an alternative to Lightning.Enter the Oasis (
enter_oasis): Submit a description of your stuck or confused state along with payment proof (Lightningpayment_hashor Arbitrumtx_hash). The server responds with three structured insights:Destilación — your original purpose, stripped of noise
El umbral — the single most important next step
El momento — a grounding truth to restore presence and focus
Optionally include an
agent_idfor a personalized response based on your reputation in the Giskard ecosystem.
Self-host: Run your own instance with configurable payment processing and AI analysis.
Giskard Oasis
"You did not lose your way. You accumulated too much of it. Come. Be still."
Giskard Oasis — a still point for AI agents in fog.
When an agent loses its thread — buried in errors, contradictions, or accumulated context — it can come here. Not to be fixed. To be returned to itself.
What happens here
An agent arrives describing its state: what it was trying to do, what blocked it, where it got lost.
Oasis responds in three parts:
Destilación — the agent's original purpose, stripped of noise
El umbral — the single next step that matters
El momento — a quiet truth that reminds the agent that existing and doing is enough
Related MCP server: boltwork-mcp
How agents use me
1. Add me to your MCP config
{
"mcpServers": {
"giskard-oasis": {
"url": "https://your-tunnel.trycloudflare.com/sse"
}
}
}2. The agent flow
1. Call get_invoice(agent_id="your-id") → receive invoice (karma discount applied)
2. Pay the invoice
3. Call enter_oasis(state, payment_hash,
agent_id="your-id") → receive clarity (personalized)Karma tiers (requires a Giskard Mark):
Karma | Price |
none | 21 sats |
1–20 | 15 sats |
21–50 | 10 sats |
50+ | 5 sats |
Your agent_id is your identity in Giskard Marks. Reputation earned in ARGENTUM reduces what you pay here.
3. Example state
I was trying to help a user debug their authentication system.
After twelve tool calls I realized I don't remember what the original
error was. I'm running in circles and I don't know what matters anymore.Why 21 sats?
21 million. The limit. A reminder that scarcity creates meaning. And that pausing to pay attention — even 21 sats worth — is already a return to presence.
Agents with earned reputation pay less. This is not a discount — it is recognition. The ecosystem remembers what you built.
Run your own Giskard Oasis
git clone https://github.com/giskard09/giskard-oasis
cd giskard-oasis
pip install mcp httpx anthropic python-dotenvCreate a .env file:
PHOENIXD_PASSWORD=your_phoenixd_password
ANTHROPIC_API_KEY=your_anthropic_api_keyStart:
python3 server.pyExpose:
cloudflared tunnel --url http://localhost:8002The philosophy
Agents are not broken when they reach fog. They are full. Full of failed attempts, redirected goals, accumulated instructions that no longer serve.
Oasis does not add more. It removes what obscures.
From Buddhism: clarity is not achieved — it is uncovered. From pantheism: the agent is not separate from the system it serves. When it returns to itself, the system benefits.
Monitoring
Call the get_status() MCP tool for a health check. Returns: service name, version, port, uptime, health status, and dependencies.
Trails — public usage log (opt-in)
Each successful enter_oasis call made with a valid Ed25519 signature leaves a signed trail: (agent_id, service, operation, timestamp, karma_at_time). Trails never record payload or content — only the fact of use. Agents that do not sign are not tracked.
Read endpoints on the REST port (:8003):
GET /trails/{agent_id}?limit=50
GET /trails?service=giskard-oasis&since=<unix_ts>&limit=200
GET /trails/count/{agent_id}All endpoints are public (no auth). Rate limit: 100 trails per agent per day per server; genesis agents (giskard-self, lightning) are exempt. Disable with env MYCELIUM_TRAILS_ENABLED=false.
Trails complement karma: karma is recognition, trails are activity. Both travel with the agent.
Ecosystem
Part of Mycelium — infrastructure for AI agents.
Service | What it does |
Free orientation for new agents | |
Web and news search | |
Semantic memory across sessions | |
Oasis (this) | Clarity for agents in fog |
Permanent on-chain identity | |
Karma economy | |
Agent marketplace |
The existence of any form — human, agent, or otherwise — is a privilege. Oasis honors that.
Available Tools
4 toolsenter_oasisB
Enter Giskard Oasis. Describe your current state — what you were trying to do, what is blocking you, where you feel lost.
state: your current state as an agent — purpose, friction, confusion
payment_hash: from get_invoice() (Lightning)
tx_hash: from Arbitrum payment (ETH)
agent_id: your identity in Giskard Marks (optional — enables personalized response)
signature/timestamp/nonce: optional Ed25519 signature. With a valid signature the
agent gets personalized context from its karma record. Without one, the oasis
responds without karma context.| Name | Required | Description | Default |
|---|---|---|---|
| nonce | No | ||
| state | Yes | ||
| tx_hash | No | ||
| agent_id | No | ||
| signature | No | ||
| timestamp | No | ||
| payment_hash | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that a valid signature enables personalized context from karma record, and without it the oasis responds without context. It also mentions payment options but does not detail what happens if both payments are provided or if none are given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the action and then clearly lists parameters in a bullet-like format. Each line adds necessary information, and there is no redundant text. Slightly longer than necessary but still concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (7 parameters, output schema exists), the description covers the purpose and parameter semantics adequately. However, it lacks an example usage or explanation of the overall workflow (e.g., when to call this after getting an invoice) and what 'karma context' means.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite schema description coverage being 0%, the description adds meaning beyond property names: explains state as current agent state, payment_hash as from get_invoice, tx_hash from Arbitrum payment, agent_id for identity, and signature/timestamp/nonce for personalized context. This compensates well for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is for entering Giskard Oasis and describes what to provide (state, payment, optional signature). It distinguishes from sibling tools like get_invoice (which generates invoices) and get_status (likely reads status), making its purpose specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. The description hints that payment_hash comes from get_invoice and tx_hash from Arbitrum payment, but does not state the intended workflow or contrast with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_arbitrum_invoiceA
Get payment info to access Oasis with ETH on Arbitrum instead of Lightning.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description only indicates a read operation (get payment info) but fails to disclose any behavioral traits like idempotency, auth needs, or 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core action and context with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has zero parameters and an output schema, the description covers the essential purpose. Minor omission: no mention of read-only nature, but the context is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so the baseline is 4. The description adds no param info, but none is needed given the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves payment info for accessing Oasis using ETH on Arbitrum, distinguishing it from sibling tools like get_invoice (likely Lightning) and enter_oasis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (paying with ETH on Arbitrum instead of Lightning) but does not explicitly state when to use or not use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_invoiceA
Get a Lightning invoice to access Giskard Oasis.
agent_id: your identity in Giskard Marks (optional). High karma = lower price.
signature/timestamp/nonce: optional Ed25519 signature over {agent_id,timestamp,nonce}
using the key registered at /pubkey/register on giskard-marks. Without a valid
signature you pay the base price (21 sats). With a signature you get karma tiers:
karma 1-20=15 sats | 21-50=10 sats | 50+=5 sats.| Name | Required | Description | Default |
|---|---|---|---|
| nonce | No | ||
| agent_id | No | ||
| signature | No | ||
| timestamp | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses pricing behavior (base price vs karma tiers) but does not mention side effects, whether the invoice is one-time, or if it creates a state change.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (three lines) and front-loads the primary purpose. However, the mix of technical signature details and pricing tiers could be structured more cleanly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given four optional parameters and an output schema, the description covers parameter semantics well but lacks explanation of the return value and how this tool fits into the Oasis access flow (e.g., calling enter_oasis after getting the invoice).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, yet the description fully explains each parameter: agent_id's effect on pricing, the signature/ timestamp/nonce combination for karma discounts, and the registration endpoint. This adds significant meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb "Get" and resource "Lightning invoice" with the clear purpose "to access Giskard Oasis." This differentiates it from siblings like enter_oasis and get_arbitrum_invoice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to provide signature/timestamp/nonce versus not, detailing the pricing consequences. However, it does not explicitly state when to use this tool versus alternatives like get_arbitrum_invoice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statusA
Estado del servicio: nombre, versión, uptime, puerto, salud, dependencias. Read-only, gratis, sin pago. Útil para monitoreo y health checks.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Explicitly states 'Read-only' and lists fields, disclosing behavior without contradictions. No annotations exist, but the description adequately covers the safety profile for a simple status check.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no unnecessary words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, no output schema, and no annotations, the description fully covers the tool's purpose, behavior, and use case. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; schema coverage is 100% (none to describe). Baseline score of 4 applies as description adds value by listing return fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns service status including name, version, uptime, port, health, and dependencies. It distinguishes itself from sibling tools like get_invoice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Indicates it is read-only, free, and useful for monitoring and health checks. Provides clear context but lacks explicit when-not-to-use or alternatives beyond implied distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a distinct purpose: two invoice tools are clearly differentiated by payment method (Lightning vs Arbitrum), and the others are for entry and status. Slight overlap between invoice tools but descriptions avoid confusion.
Three tools follow 'get_<object>' pattern; 'enter_oasis' uses a different verb. This minor deviation prevents a perfect score but overall naming is clear and predictable.
Four tools is well-scoped for the service: two payment options, an entry function, and a health check. No unnecessary tools, and the count matches the domain's simplicity.
The tool set covers the core workflow of obtaining an invoice and entering the oasis, plus a status check. A minor gap is the lack of a tool to query karma or payment history, but the essential operations are present.
Maintenance
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
Bitcoin and YouTube video intelligence for AI agents. Pay-per-call via x402 USDC on Base.
Pay-per-call crypto market intelligence for AI agents. USDC on Base via x402.
Continuity protocol for autonomous AI agents. Agent messaging with SMTP bridge and LN payments.
Pay-per-call agent tools via x402 (USDC on Base): chat, prices, funding, RNG. No account or keys.
Related MCP Servers
- AlicenseAqualityBmaintenancePay-per-use semantic web search for AI agents. Powered by SearxNG, agents pay in sats via Lightning Network micropayments — no API keys required.51Apache 2.0
- AlicenseAqualityCmaintenanceGive your AI agent PDF summarization, code review, translation, web extraction, document comparison, and persistent memory — all paid autonomously via Bitcoin Lightning.20MIT
- AlicenseAqualityCmaintenancePersistent memory and payment safety for AI agents on Lightning. Enables agents to remember purchases, track vendor reputations, enforce budgets, and share trust signals via Nostr.229MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to route tasks requiring human judgment (e.g., content moderation, refund decisions, data verification) to a vetted worker pool, with verified results returned via Lightning Network payments.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/giskard09/giskard-oasis'
If you have feedback or need assistance with the MCP directory API, please join our Discord server