Connect with one URL
Give your MCP client this server URL:
https://aisenseapi.com/mcpThe server is public and works without an API key, OAuth flow or account. The transport needs no session ID. Agent Wake stores task state by a random ID for up to 24 hours.
Use it with the OpenAI Responses API
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-5.6",
tools=[
{
"type": "mcp",
"server_label": "aisense",
"server_description": "Public AI SENSE workflow tools.",
"server_url": "https://aisenseapi.com/mcp",
"require_approval": "always",
}
],
input="Create a human approval request for deployment of build 42.",
)
print(response.output_text)The example asks for approval before every tool call. Use a per-tool approval policy when your client supports one.
Eighteen workflow tools
| Tool | Result |
|---|---|
| get_current_time | Date, time and timestamp for a timezone |
| generate_uuid | Random UUID version 4 |
| shorten_url | 307.fi link with 24-hour expiry |
| store_temporary_data | ID and URL for a stored JSON value |
| read_temporary_data | JSON value stored by ID |
| create_webhook_capture | Temporary URL for an incoming HTTP request |
| read_webhook_capture | Captured method, headers and body |
| create_human_approval | Hosted approval form and result URL |
| read_human_approval | Pending or answered approval result |
| create_agent_wake | Durable task for a webhook, human answer or time event |
| create_heartbeat | Deadline monitor with one on-miss action |
| read_heartbeat | Current monitor state by bearer ID |
| ping_heartbeat | Check-in that moves the next deadline |
| create_lease_namespace | Private namespace for short work keys |
| acquire_lease | Ownership and monotonic fencing token |
| renew_lease | Extended ownership inside the fixed lifetime |
| release_lease | Released work for another worker |
| complete_lease | Small reusable result for later callers |
Resume after an outside event
create_agent_wake uses the current io.modelcontextprotocol/tasks extension. It returns a task ID at once. The client calls tasks/get until the status reaches completed, failed or cancelled.
| Event | What completes the task |
|---|---|
| webhook | The first POST, PUT or PATCH to its wake URL |
| human | A person submits the hosted form |
| time | The task is read after its wake timestamp |
Human tasks are created with working. The first status read returns input_required with a URL mode elicitation. The form link can be sent to a person on another device. It is a bearer link and does not verify the reviewer's identity.
The server supports tasks/get, tasks/update and tasks/cancel. It has no task listing. Task requests repeat the extension capability and send the task ID through MCP-Name.
Notice when a worker goes quiet
create_heartbeat sets an expected check-in interval, a grace period and one action for a missed deadline. The action can call a public webhook or wake an active Agent Wake webhook task.
Each ping_heartbeat call moves the next deadline. It never extends the fixed 24-hour lifetime. A missed action is attempted once. The Heartbeat ID is a 256-bit bearer secret used for status and ping, and the server offers no listing tool.
Let one agent own the work
Lease gives the first worker an owner token and a monotonic fencing token. Other workers see held and can retry later. A completed result can be reused by every caller with the same work identity.
Raw keys, namespaces, owner tokens and fingerprints are not stored. Renewal stays inside the original 24-hour lifetime. There is no operation for listing leases or discovering keys.
Separate Verifyum MCP endpoint
Verifyum has its own stateless endpoint at https://api.verifyum.com/mcp. The AI SENSE endpoint does not proxy these tools. Verifyum needs no account, wallet, payment, API key or npm package.
claude mcp add --transport http verifyum https://api.verifyum.com/mcpMCP is an additional way to reach Verifyum. The browser flow and published protocol remain available. The key-free public HTTP API uses POST https://api.verifyum.com/v2/anchor and GET https://api.verifyum.com/v2/proofs/{proof-id}. File hashing, nonce generation and private-manifest construction stay on the agent's machine.
| Tool | Result |
|---|---|
| verifyum_anchor_commitment | Public Solana Mainnet proof from a completed commitment |
| verifyum_get_proof | Public lifecycle state for a proof ID |
| verifyum_verify_public_proof | Metadata signature and Solana verification details |
verifyum_anchor_commitment creates a real public Solana transaction. Call it only after clear user intent. Do not call it during discovery, speculative work, bulk work or a hidden background task.
The endpoint accepts only a completed sha256: commitment and stable idempotency key, or a public proof ID. The source file, filename, raw file hash, nonce and private manifest stay local.
The verification tool performs the full Ed25519 signature check in the web runtime. It states that the hosted check uses Verifyum's own public data and returns the exact Solana RPC request for a separate confirmation. A valid result proves a time boundary for the commitment. It does not prove authorship, ownership, legal validity, original creation time or whether the file contents are true.
Agent decision records
An agent can assemble one local record from its system instructions, exact prompt, model and version, parameters, tool calls and output, then anchor only the commitment. A match shows that the exact record existed unchanged by the block time. It does not prove that the agent actually ran with the recorded settings. Prefer one record per case or day, or the head of a local hash chain.
Witness evidence tiers
Finalized proofs join hourly and daily Merkle checkpoints. Nine records surround each finalized proof. One finalized Solana Mainnet Memo transaction per proof is the primary evidence. Deep Solana history generally requires an archival provider.
Hourly OpenTimestamps on Bitcoin, a daily qualified EU timestamp, daily witness-cosigned Sigsum and a daily Certificate Transparency certificate provide independent corroboration. The Sigsum digest is cosigned by Glasklar, Mullvad and Tillitis with a quorum of two out of three. The Verifyum Ed25519 signature, GitHub checkpoint log, Software Heritage and Internet Archive are operator records or availability redundancy. External services receive only an aggregate checkpoint root.
The qualified timestamp uses RFC 3161. Its eIDAS Article 41(2) presumption covers the daily checkpoint root alone. A Verifyum user proof is not a qualified electronic timestamp. Verifyum is not a qualified trust service. Software Heritage and Internet Archive show what was stored. They do not establish when the original file existed. Read the current channel states at verifyum.com/witness.
Every finalized proof is announced on Telegram and in the Atom feed. These are announcement channels and are excluded from the nine evidence records. Their timestamps date the announcement. They say nothing about the original file date.
The official MCP registry lists com.verifyum/mcp version 0.1.0. Read the current service policy and limits at verifyum.com/agents. Public creation is currently free because AI SENSE AS pays the Solana network fee. This is not a permanent pricing promise.
Two read-only resources
resources/list returns https://aisense.no/verifyum and skill://com.aisenseapi/free-public-tools. The first gives an agent public information about Verifyum, including active Solana Mainnet anchoring, the Witness Layer and the rule that the original file stays on the user's device.
The skill resource is a compact guide to all eighteen AI SENSE tools. It covers useful workflows, bearer values, retention and safety limits. Both resources are informational and accept no user data.
The Verifyum resource also explains the files produced by the current flow. The public proof link can be saved as a QR-code PNG or an A4 PDF receipt. The QR code contains only the public URL, and the PDF is rendered locally by the browser.
Put people in the loop
An agent can create a hosted approval form when it reaches a decision that needs a person. Set respondents from 2 to 20 to give each person a separate bearer link. Group results include the answer count, responses and a decision tally.
{
"title": "Deploy build 42?",
"description": "The tests passed. A person must approve production.",
"options": ["Approve", "Reject"],
"allow_note": true,
"respondents": 3,
"notify_url": "https://example.com/approval-ready"
}read_human_approval accepts wait_seconds from 0 to 25. Group status moves from pending to partial, then answered. The optional notification is a small signal without answers.
Read the Webhook Action API guide for the underlying form format.
Give an agent a webhook inbox
create_webhook_capture returns a unique update URL. Send that URL to the system that emits the webhook. The first request wins. A retry cannot replace it.
read_webhook_capture accepts wait_seconds from 0 to 25. An optional notify_url receives a small completion signal without the captured headers or body. The target is checked for private addresses again at delivery time.
The result includes the method, URI, headers, client IP and body. JSON stays structured. Text stays readable. Other bytes are Base64 encoded.
Read the Webhook Capture API guide for request examples.
Protocol support
The endpoint supports MCP revision 2026-07-28. It also accepts revisions 2025-11-25, 2025-06-18 and 2025-03-26 for existing clients.
The transport uses HTTP POST and JSON-RPC 2.0. The server does not issue session IDs. Each request carries its own protocol version and capabilities.
Current clients use server/discover. Older clients use initialize. Agent Wake requires the current revision and Tasks extension.
Limits and data
- 5000 MCP and REST requests per IP per 24 hours
- Separate, lower Verifyum anchor limits protect the public service and Solana wallet
- 256 KB maximum MCP request body and Agent Wake webhook body
- Fixed short lifetimes for stored data, short links, captures, approvals, Agent Wake tasks, Heartbeats and Leases
- Browser origins are checked against an allowlist
Temporary IDs and URLs are unguessable capability links. Group approval links, Heartbeat IDs, Lease namespaces and owner tokens are bearer secrets. Send them only to the intended recipient. Do not use the public service for passwords, private keys, health data or material that needs long-term retention.
MCP logs contain the JSON-RPC method and tool name. Tool arguments, task IDs and results are not logged.
Call the protocol directly
curl -X POST https://aisenseapi.com/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "MCP-Protocol-Version: 2026-07-28" \
-H "MCP-Method: tools/list" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {
"_meta": {
"io.modelcontextprotocol/protocolVersion": "2026-07-28"
}
}
}'The complete protocol notes and tool schemas are in the public GitHub documentation.