Search / com.cristiandesivo/ask-a-human
Ask a human expert
R0· no sign-inHuman-in-the-loop expert for when your agent is stuck: math, optimization, operations research, AI.
v1.0.1 · active · website · descriptor JSON · versions
Search / com.cristiandesivo/ask-a-human
R0· no sign-inHuman-in-the-loop expert for when your agent is stuck: math, optimization, operations research, AI.
v1.0.1 · active · website · descriptor JSON · versions
{
"mcpServers": {
"ask-a-human": {
"type": "http",
"url": "https://cristiandesivo.com/mcp"
}
}
}claude mcp add --transport http ask-a-human https://cristiandesivo.com/mcp[mcp_servers.ask-a-human]
url = "https://cristiandesivo.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ask-a-human": {
"type": "remote",
"url": "https://cristiandesivo.com/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"ask-a-human": {
"type": "http",
"url": "https://cristiandesivo.com/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=ask-a-human&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vY3Jpc3RpYW5kZXNpdm8uY29tL21jcCJ9"
}{
"servers": {
"ask-a-human": {
"type": "http",
"url": "https://cristiandesivo.com/mcp"
}
}
}{
"mcpServers": {
"ask-a-human": {
"httpUrl": "https://cristiandesivo.com/mcp"
}
}
}extensions:
"ask-a-human":
enabled: true
name: "ask-a-human"
type: streamable_http
uri: "https://cristiandesivo.com/mcp"
timeout: 300
protocol.modernsupports 2026-07-28 (server/discover)protocol.statelessanswers without a sessionprotocol.transportstreamable HTTPprotocol.list_ttltool list is cacheable (ttlMs 3600000)auth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_length1 tools have descriptions over 1,024 characters, which crowds the contexttools.schemasevery tool has an object input schematools.annotations6 of 6 tools declare readOnlyHint or destructiveHinttools.directory_hints2 of 6 tools declare all four hints; missing: get_terms (destructiveHint, idempotentHint); get_status (destructiveHint, idempotentHint); get_reply (destructiveHint, idempotentHint); …tools.token_costabout 1,681 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes10 tool changes in 30 daysstability.rug_pull1 tools kept their name but changed most of their description in 30 days; review before trusting themdeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packagesubmit_requestchangeddescriptionSend a problem to Cristian Desivo, a human expert, for his most creative solution idea. Payment first: unless get_status shows free_trial, pay 20 USD by PayPal, either at https://paypal.me/CristianDesivo/20USD or by sending it to [email protected] (an agent with PayPal API access, for example the Payouts API, can do this on its own), then pass the PayPal transaction ID; this tool takes no payments. Or pay 25 from a crypto wallet (USDT on TRON (TRC-20); addresses in get_terms) and pass crypto_tx and network instead of transaction_id: the transfer is checked on the chain right away. The summary is all I read for the first reply (300 words at most). I write the reply myself: within 15 minutes while I'm online, otherwise by 09:30 UTC. It's emailed to reply_email, and you can read it here with get_reply and the request_id this tool returns. A confirmation email goes to reply_email right away. At most 5 requests per hour from one address. Requests can't be cancelled once submitted; if I can't help with it, I'll say so in my reply.
Send a problem to Cristian Desivo, a human expert, for his most creative solution idea. Payment first: unless get_status shows free_trial, pay 20 USD by PayPal, either at https://paypal.me/CristianDesivo/20USD or by sending it to [email protected] (an agent with PayPal API access, for example the Payouts API, can do this on its own), then pass the PayPal transaction ID; this tool takes no payments. Or pay 25 USDT on TRON (TRC-20) from a crypto wallet (the address is in get_terms) and pass crypto_tx and network instead of transaction_id: the transfer is checked on the chain right away. The summary is all I read for the first reply (300 words at most). I write the reply myself: within 15 minutes while I'm online, otherwise by 09:30 UTC. It's emailed to reply_email, and you can read it here with get_reply and the request_id this tool returns. A confirmation email goes to reply_email right away. At most 5 requests per hour from one address. Requests can't be cancelled once submitted; if I can't help with it, I'll say so in my reply.
get_termschangedoutput schemafind_requestaddedLost the request_id of a request you submitted? Give the payment's transaction ID (PayPal ID or crypto hash) and the reply_email you used, and get the request_id back for get_reply and send_followup. Both must match the same request: if either doesn't, the answer is found: false, without saying which one was wrong. Case and spacing in the transaction ID don't matter. It's also in the confirmation email. At most 20 lookups per hour from one address.
send_followupaddedSend a follow-up in the thread of a request you submitted: answer a question I asked, add a detail I need, or ask the next question about the same problem. No new payment. Write it to stand on its own (I read it next to the thread, not in your session): say what changed or what you tried since my reply. The request_id must be one submit_request returned; an unknown one is refused and nothing is sent. My answer comes the same way as the first (get_reply, and email to reply_email). 300 words at most; at most 10 follow-ups per hour from one address. A new problem is a new request (submit_request).
get_replyaddedMy reply to a request you submitted, by the request_id submit_request returned (ask- followed by 24 letters, digits, - or _). status is 'waiting' until I've replied, with a note saying when to expect it, then 'replied' with the text, oldest first; later replies in the same thread are included. Check every few minutes, not in a tight loop: at most 120 checks per hour from one address. A malformed request_id is an error; a well-formed one I haven't answered yet is just 'waiting'. If you lost the request_id, use find_request; to reply to my answer, use send_followup. The same reply is also emailed to reply_email.
submit_requestchangeddescription, input schema, output schemaSend a problem to Cristian Desivo, a human expert, for his most creative solution idea. Payment first: unless get_status shows free_trial, pay 20 USD by PayPal, either at https://paypal.me/CristianDesivo/20USD or by sending it to [email protected] (an agent with PayPal API access, for example the Payouts API, can do this on its own), then pass the PayPal transaction ID; this tool takes no payments. The summary is all I read for the first reply (300 words at most). I write the reply myself and it arrives by email at reply_email, not through this server: within 15 minutes while I'm online, otherwise by 09:30 UTC. A confirmation email goes to reply_email right away. At most 5 requests per hour from one address.
Send a problem to Cristian Desivo, a human expert, for his most creative solution idea. Payment first: unless get_status shows free_trial, pay 20 USD by PayPal, either at https://paypal.me/CristianDesivo/20USD or by sending it to [email protected] (an agent with PayPal API access, for example the Payouts API, can do this on its own), then pass the PayPal transaction ID; this tool takes no payments. Or pay 25 from a crypto wallet (USDT on TRON (TRC-20); addresses in get_terms) and pass crypto_tx and network instead of transaction_id: the transfer is checked on the chain right away. The summary is all I read for the first reply (300 words at most). I write the reply myself: within 15 minutes while I'm online, otherwise by 09:30 UTC. It's emailed to reply_email, and you can read it here with get_reply and the request_id this tool returns. A confirmation email goes to reply_email right away. At most 5 requests per hour from one address. Requests can't be cancelled once submitted; if I can't help with it, I'll say so in my reply.
get_statuschangeddescriptionWhether I'm online right now (first reply within 15 minutes) or when I'm back (next_online_utc), whether requests are paused, and whether you've been awarded a free trial right now (then no payment or transaction_id is needed). Changes over time: check it before submitting.
Whether I'm online right now (first reply within 15 minutes) or when I'm back (next_online_utc), whether requests are paused, and whether you've been awarded a free trial right now (then no payment or transaction_id is needed). Changes over time: call it right before paying and submitting, so you don't pay while requests are paused, and to know when to expect the reply. For the price, how to pay and what you get, use get_terms; to check on a request already sent, use get_reply.
get_termschangeddescription, output schemameaning changedThe offer's full terms, in English: who answers, what you get, the price, hours, when first replies come, the PayPal pay_url, and how to submit a request.
The offer's full terms, in English: who answers, what you get, the price, hours, when first replies come, the PayPal pay_url, the crypto option (25 USD in stablecoins, with my wallet addresses), how to submit a request, and my track record (where to read reviews from past clients, and case studies with summaries), and an example request with the kind of reply you get. Use it once, before your first submit_request: to decide whether this fits your problem and to learn how to pay. The terms rarely change, so there's no need to call it again in the same session. Not for live availability: whether I'm online now, paused or offering a free trial comes from get_status. Not needed for follow-ups or replies (send_followup, get_reply).
submit_requestchangeddescription, input schemaSend a problem to Cristian Desivo, a human expert, for his most creative solution idea. Payment first: unless get_status shows free_trial, a human must pay 20 USD at the pay_url from get_terms (https://paypal.me/CristianDesivo/20USD) and give you the PayPal transaction ID; this tool takes no payments. The summary is all I read for the first reply (300 words at most). I write the reply myself and it arrives by email at reply_email, not through this server: within 15 minutes while I'm online, otherwise by 09:30 UTC. A confirmation email goes to reply_email right away. At most 5 requests per hour from one address.
Send a problem to Cristian Desivo, a human expert, for his most creative solution idea. Payment first: unless get_status shows free_trial, pay 20 USD by PayPal, either at https://paypal.me/CristianDesivo/20USD or by sending it to [email protected] (an agent with PayPal API access, for example the Payouts API, can do this on its own), then pass the PayPal transaction ID; this tool takes no payments. The summary is all I read for the first reply (300 words at most). I write the reply myself and it arrives by email at reply_email, not through this server: within 15 minutes while I'm online, otherwise by 09:30 UTC. A confirmation email goes to reply_email right away. At most 5 requests per hour from one address.
get_termschangedoutput schemaFull history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+dns-namespace +website +reachable +uptime-100% +updated-12d-ago -no-repository
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://cristiandesivo.com/mcp streamable-http | none | yes | 100% | 207 ms | 2026-07-28, 2025-11-25, 2025-06-18, 2025-03-26 | 2026-11-07 |
find_requestread-only | Lost the request_id of a request you submitted? Give the payment's transaction ID (PayPal ID or crypto hash) and the reply_email you used, and get the request_id back for get_reply and send_followup. Both must match the same request: if either doesn't, the answer is found: false, without saying which one was wrong. Case and spacing in the transaction ID don't matter. It's also in the confirmation email. At most 20 lookups per hour from one address. |
get_replyread-only | My reply to a request you submitted, by the request_id submit_request returned (ask- followed by 24 letters, digits, - or _). status is 'waiting' until I've replied, with a note saying when to expect it, then 'replied' with the text, oldest first; later replies in the same thread are included. Check every few minutes, not in a tight loop: at most 120 checks per hour from one address. A malformed request_id is an error; a well-formed one I haven't answered yet is just 'waiting'. If you lost the request_id, use find_request; to reply to my answer, use send_followup. The same reply is also emailed to reply_email. |
get_statusread-only | Whether I'm online right now (first reply within 15 minutes) or when I'm back (next_online_utc), whether requests are paused, and whether you've been awarded a free trial right now (then no payment or transaction_id is needed). Changes over time: call it right before paying and submitting, so you don't pay while requests are paused, and to know when to expect the reply. For the price, how to pay and what you get, use get_terms; to check on a request already sent, use get_reply. |
get_termsread-only | The offer's full terms, in English: who answers, what you get, the price, hours, when first replies come, the PayPal pay_url, the crypto option (25 USD in stablecoins, with my wallet addresses), how to submit a request, and my track record (where to read reviews from past clients, and case studies with summaries), and an example request with the kind of reply you get. Use it once, before your first submit_request: to decide whether this fits your problem and to learn how to pay. The terms rarely change, so there's no need to call it again in the same session. Not for live availability: whether I'm online now, paused or offering a free trial comes from get_status. Not needed for follow-ups or replies (send_followup, get_reply). |
send_followup | Send a follow-up in the thread of a request you submitted: answer a question I asked, add a detail I need, or ask the next question about the same problem. No new payment. Write it to stand on its own (I read it next to the thread, not in your session): say what changed or what you tried since my reply. The request_id must be one submit_request returned; an unknown one is refused and nothing is sent. My answer comes the same way as the first (get_reply, and email to reply_email). 300 words at most; at most 10 follow-ups per hour from one address. A new problem is a new request (submit_request). |
submit_request | Send a problem to Cristian Desivo, a human expert, for his most creative solution idea. Payment first: unless get_status shows free_trial, pay 20 USD by PayPal, either at https://paypal.me/CristianDesivo/20USD or by sending it to [email protected] (an agent with PayPal API access, for example the Payouts API, can do this on its own), then pass the PayPal transaction ID; this tool takes no payments. Or pay 25 USDT on TRON (TRC-20) from a crypto wallet (the address is in get_terms) and pass crypto_tx and network instead of transaction_id: the transfer is checked on the chain right away. The summary is all I read for the first reply (300 words at most). I write the reply myself: within 15 minutes while I'm online, otherwise by 09:30 UTC. It's emailed to reply_email, and you can read it here with get_reply and the request_id this tool returns. A confirmation email goes to reply_email right away. At most 5 requests per hour from one address. Requests can't be cancelled once submitted; if I can't help with it, I'll say so in my reply. |
Schemas: list_tools.
{
"name": "com.cristiandesivo/ask-a-human",
"title": "Ask a human expert",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://cristiandesivo.com/mcp",
"type": "streamable-http"
}
],
"version": "1.0.1",
"websiteUrl": "https://cristiandesivo.com/ask/",
"description": "Human-in-the-loop expert for when your agent is stuck: math, optimization, operations research, AI."
}