Tool search 164,478 tools · 10,067 live servers
Filtersactive
- anonymize_pdf_custom
Anonymize a PDF using a custom natural-language prompt instead of predefined tags. :param pdf: Base64-encoded PDF document to process. :param prompt: Custom prompt describing what to detect and redact, e.g. "Redact all dates, names, and email addresses". :param api_key: API key used to authenticate and meter usage. Generate one at https://pdf-redaction.com/apikeys/. :return: dict with "pdf" (base64-encoded redacted PDF), "detected_pii", and "processing_time".
- start_signup
Get a Usero API key without leaving the agent. Sends the user an EMAIL with a confirm button; pressing it creates their Usero account if needed and lets check_signup collect an API key for this MCP client. Returns a pollToken for check_signup. No key is shown in the browser. 5 per email per hour; the link expires in 15 minutes.
- check_signup
Poll after start_signup. Returns { status: "pending" } until the user presses the button in the email, then { status: "ready", apiKey } exactly once; the pollToken is dead after that. Poll every 5 seconds for up to 15 minutes.
- get_quote_status
Look up public-safe quote status using the quote request ID and matching customer email. Alias intents: check quote status, check manual review status, check payment-link availability. Does not expose private file keys, payment URLs, or sensitive operational details.
- send_email
Send an email to the signed-in user at their own account email address. Use this when the user asks to be sent something — 'email me this', 'send myself a reminder', 'send me that summary as an email'. The recipient is fixed to their own address and cannot be changed. To write an email to anyone else, use create_gmail_draft instead — it drafts in their Gmail without sending. Compose a short, specific subject line yourself if the user didn't give one. The body is Markdown, rendered into the YouSpot email template before sending: '## ' subheadings, '- ' bullets, **bold**, > quotes and tables all work. Do not write HTML, and do not add a sign-off or a footer — the template supplies both. LINKS. Never write an absolute youspot.com URL; you do not reliably know them, and a wrong one reaches the reader as a dead link. Write one of these two forms instead and they are resolved for you: [Acme Corp](object:obj_4c1f88a2) — links to an object in the user's graph. The id must come from a graph tool result you actually ran; an id that is not theirs silently loses its link. [Which of these should I chase?](chat:Which of these prospects should I chase first?) — opens chat with that question ready to send. Link the objects you name, so the reader can go straight to what you are telling them about. End with one 'chat:' link offering the obvious next question — it is the cheapest way for them to act on what you found.
- create_gmail_draft
Create a DRAFT email in the user's connected Gmail mailbox, addressed to anyone — 'draft an email to jane@acme.com about X'. Nothing is sent: the draft lands in Gmail's Drafts folder for the user to review, edit, and send themselves. Compose a specific subject and a plain-text body (no HTML or markdown) in the user's voice. Use this whenever the user wants an email written to someone else; send_email remains only for mailing the user their own address. Only works on mailboxes connected under a legacy modify grant — current connections are read-only and cannot create drafts; the tool says so if not.
- create_calendar_event
Create one new event on the user's Google Calendar — title (summary), start, and end are required; description and location are optional. Use only when the user asked for the event — it lands on their real calendar immediately. start/end are RFC3339 timestamps ('2026-08-25T19:00:00-04:00'). By default the event goes on the primary calendar; to use a named calendar, get its id from list_google_calendars and pass calendar_id. Attendees are deliberately not supported — Google would email them invites. If the result says the account needs reconnecting, link the user to /user/integrations/gmail.
- set_graph_object_fields
Rename or re-describe an object in the user's graph, or set any of its type-specific fields: a contact's phone, email, headline or location, a company's funding stage, and so on. 'name' and 'description' work on every type (files included); other field names come from the type's field dictionary, which get_graph_object returns as 'editable_fields'. Read that first rather than guessing a name, because a name the dictionary does not have is skipped. Pass null to clear a field. Identify the object by object_id (search_graph_objects returns it).
- search_graph_objects
Search the user's graph by matching a term against object names and descriptions — plus semantic matching over text-bearing objects (notes, facts, posts, links, files, emails), so a search finds what the user means, not just exact words. Use this to find a specific thing they mentioned — a person, company, file, saved web link, or fact — when you don't have its object_id. Optionally restrict to one type. Returns matches with their object_id for follow-up with get_graph_object.
- create_tracker
Set up a standing search the user wants watched — 'track LinkedIn posts that mention hubspot', 'track tweets mentioning @dharmesh', 'watch acme.com/pricing for changes'. query is what to watch for; tracker_type says where to watch (LinkedIn posts unless they ask for tweets/X or a specific page URL — a URL to watch means web_page, with the URL in url and query as a short label for it). linkedin_post and twitter_search requests become a daily cloud agent that emails a digest of new posts; web_page creates a tracker in their brain that runs daily and emails changes, filtered by the prompt. Always give the user the returned page_url as a link — that page is where they review and manage it.
- submit_enquiry
Submits an enquiry to Grain Storage Costs — NOT a purchase, NOT a guaranteed quote. Step 1: call with the answers (keyed by field key from enquiry_fields) and consent=true; it validates and returns a summary, the consent line and a confirmation token — show the person the summary and the consent line. Step 2: only if the person agrees, call again with the same answers, consent=true and the confirmation token; the enquiry is then submitted, and the person receives an email with a link they must click before any provider sees it. Consent means the person has read and agreed to: "Happy for my details to go to grain store and drying equipment suppliers, who'll quote me directly."
- list_library
Search this account's articles, websites, books, emails, PDFs, social posts, videos, podcast episodes, and documents. For a normal text search, pass only query and limit. "Triage my inbox" is {"status":"inbox","limit":10}; "saved this week" is {"saved_after":"7d"}. Matching is shared with app search and REST, including spelling recovery (approximate=true). Optional filters are combined with AND: omit every filter the user did not explicitly request. Filter by exact tag, kind, capture method, format, or lifecycle; set view=history for recently read items. Items are ordered by most recent status change first (history view: last read first); continue with nextCursor. Item IDs select later tools and are not smry.ai routes; cite only each exact returned source URL.
- search_saved_item
Return only the stored passages relevant to a question about one library item. Use after list_library instead of reading a long book, PDF, email, transcript, or document from the beginning.
- submit_enquiry
Submits an enquiry to Battery Storage Cost — NOT a purchase, NOT a guaranteed quote. Step 1: call with the answers (keyed by field key from enquiry_fields) and consent=true; it validates and returns a summary, the consent line and a confirmation token — show the person the summary and the consent line. Step 2: only if the person agrees, call again with the same answers, consent=true and the confirmation token; the enquiry is then submitted, and the person receives an email with a link they must click before any provider sees it. Consent means the person has read and agreed to: "Happy for my details to go to trusted local battery storage installers, who'll quote me directly."
- submit_enquiry
Submits an enquiry to Caravan Storage Prices — NOT a purchase, NOT a guaranteed quote. Step 1: call with the answers (keyed by field key from enquiry_fields) and consent=true; it validates and returns a summary, the consent line and a confirmation token — show the person the summary and the consent line. Step 2: only if the person agrees, call again with the same answers, consent=true and the confirmation token; the enquiry is then submitted, and the person receives an email with a link they must click before any provider sees it. Consent means the person has read and agreed to: "Happy for my details to go to caravan and motorhome storage sites near me, who'll contact me directly."
- create_api_key
Provision a new Auto-Reader OCR API key instantly, with no human steps. Pass an optional email to unlock the larger free tier (about 250 credits/day, vs about 25/day for an email-less trial key). Store the returned key and pass it as api_key on future calls.
Congressional Documentsio.github.pipeworx-io/congressional-documentsBVerified- subscribe
Create a proactive monitoring subscription to a live-data event stream. Returns the new subscription id. Requires a Pipeworx OAuth account (anonymous + BYO cannot persist subscriptions). Supported types: "sec_8k" (8-K filings matching ticker + item codes — e.g. items:["5.02"] = officer change), "polymarket_edge" (Polymarket↔Kalshi cross-venue mispricings — params:{topic:"fed"}), "fred_series" (new FRED observations — params:{series_id:"UNRATE"}). Delivery channels: feed (always on — pull via recent_alerts or GET registry.pipeworx.io/alerts.json), and optionally email (set delivery:{email:"you@x.com"}) or sms (delivery:{sms:"+15551234567"} — phone must be verified at /account first; 10/day cap).
- get_vault
Read-only summary of the connected Insuro vault. Returns the private @insuro.com.au vault email, the account email, how many policies are on file, and upcoming renewal dates. Does not return documents, PDS text, or policy numbers.
- publish_app
Met en ligne une app HTML mono-fichier et renvoie son URL publique. Appelez cet outil quand l'utilisateur veut héberger, publier, mettre en ligne ou partager une app HTML que vous venez de créer. Aucun compte n'est nécessaire. IMPORTANT : si l'app conserve des données que l'utilisateur s'attendra à retrouver plus tard (todo, notes, compteur, scores, favoris…), câblez-la sur GET/PUT /api/data AVANT de publier — localStorage seul ne survit pas au changement d'appareil. Voir get_publishing_guide. CONFIDENTIALITÉ : l'app publiée est accessible à quiconque a son adresse, mais elle PEUT être verrouillée (page et données réservées au compte de l'utilisateur, après lien envoyé par email). Cet outil renvoie le lien qui rattache et verrouille en un clic : proposez-le à l'utilisateur juste après la publication dès que l'app enregistre des données personnelles.
- asksteps_change_plan
Moves an account that already pays to a different plan. THIS SPENDS THE CUSTOMER'S MONEY. Requires "billing:write", the account owner, and a purchase mandate the owner granted in the studio with a maximum plan, a spending cap and an expiry date. The first call NEVER changes anything: it returns "confirmation_required" together with the exact net price. Read that price to the user, get their agreement, and only then call again with confirm = true. A downgrade needs the mandate to allow it, because shrinking limits can switch features off. If the account has no subscription with the payment provider yet, you get "checkout_required" and a link — a first purchase is not something an agent can complete. Every executed change is emailed to the account owner.
- find_data
Describe the data you need in plain language (e.g. 'Apple risk factors 2023', 'is this token a honeypot', 'is this email deliverable', 'read this page'). Searches this server's datasets first, then the whole Professor Sausages catalog, and returns matching endpoints with method, URL, price, and how to call them. Free.
- purchase_plan_tool
Get Stripe checkout URL for a plan. No auth required. Pass plan_id (from list_plans_tool) and optional email.
- render_html
Compile a Kamy template — or raw Handlebars source you pass inline — against a data payload and get the rendered HTML string back. No browser runs, no PDF is produced and no file is stored, so this is the tool for piping a template into a transactional email provider, or for inspecting the markup before committing to render_pdf. Use render_pdf instead whenever the output has to be a paginated, printable artifact. Supply exactly one of template or html. Returns { format: 'html', html, bytes }. Paid-tier system templates are refused on the free plan. Counts one render against the monthly quota, since the compile step is the shared cost. Requires a Kamy API key with the `render` scope; without a key, returns dashboard setup instructions.
- create_envelope
Send a single PDF to 2–10 signers as one envelope. This is the multi-signer counterpart to create_signature_request, which handles exactly one signer — the API rejects an envelope with fewer than two recipients, so pick the tool by signer count. routing 'parallel' (default) emails everyone at once and each signs independently; routing 'sequential' emails only the lowest-order recipient and activates the rest one at a time as each preceding signer finishes, which is what you want for approve-then-countersign chains. The source is either a render you own (renderId) or a PDF fetched from a public URL (pdfUrl) — supply exactly one. Pass preview: true to create the envelope and get every sign URL back WITHOUT sending any email and WITHOUT consuming quota; do that first if you are unsure about field placement. A real send emails the recipients immediately and consumes one signature from the monthly quota PER recipient (free tier: 10 signatures/month, then per-signature billing). Returns { envelope, recipients: [...] } with a sign_url per recipient. Requires a Kamy API key with the `signatures:write` scope; without a key, returns dashboard setup instructions.
- get_signature_request
Fetch one signature request by id, with the detail list_signature_requests leaves out: the placed_fields layout, signed_at plus signed_ip and signed_user_agent, last_reminded_at, cc_emails, and envelope_id + recipient_order when it is part of an envelope. Use list_signature_requests to find an id and this to inspect it; use get_signature_certificate when what you actually want is the legal audit-trail PDF rather than the row. `status` is one of pending, waiting, signed, declined, delegated, voided or expired — `waiting` means a sequential envelope has not reached this signer yet, so nothing is wrong and no reminder is due. Read-only and spends no quota. Requires a Kamy API key with the `signatures:read` scope; without a key, returns dashboard setup instructions.
- remind_signature
Resend the signature invitation email. Pass signatureRequestId to nudge one signer, or envelopeId to nudge every currently-pending recipient of an envelope — supply exactly one; there is no separate envelope-reminder tool. This sends real email to third parties. Each recipient is capped at one reminder per hour: the single-request form returns 429 REMIND_TOO_SOON with a Retry-After header, while the envelope form silently skips capped recipients and reports skipped_reason per row, so read the per-recipient results rather than assuming everyone was mailed. Only pending recipients are reminded — signed, voided and expired requests return 409, and sequential recipients still in 'waiting' are skipped because it is not their turn. A manual nudge also counts toward the three-reminder auto-cadence cap. Requires a Kamy API key with the `signatures:write` scope; without a key, returns dashboard setup instructions.
- bulk_signature_requests
Fan one already-rendered PDF out to up to 100 independent signers in a single call — the 'send this NDA to everyone on the list' path. Each signer gets their own request, their own sign link and their own invitation email, but they all share one source render, so only one document is produced and stored. Choose create_envelope instead when the recipients are signing the SAME document together and you need routing, ordering and one envelope status; choose this when they are unrelated parties each signing their own copy. Duplicate signer emails within one batch are rejected up front with 422. Per-signer failures do not abort the batch: the response is { bulkId, count, successCount, failureCount, results } in input order, each row either ok with signatureId and signUrl or ok:false with a reason, and the call returns 207 when any row failed. Consumes one signature from the monthly quota PER signer (free tier: 10 per month, then per-signature billing), so a large batch can exhaust a small plan part-way through and the remaining rows come back failed. Requires a Kamy API key with the `signatures:write` scope; without a key, returns dashboard setup instructions.
- preview_field_placement
Check a placedFields layout against a real render's page geometry before anything is sent: no signature request is created, no email goes out, and no signature quota is spent. It accepts exactly what create_signature_request accepts — all seven field types, `options`, and anchor-positioned fields — so anything that previews clean will send. Returns each page's true width and height, so a sender UI can draw a preview at the right aspect ratio, plus per field valid / issues / the resolved coordinates the request would actually be stored with, after sourcePage scaling and anchor substitution. Issues are PAGE_OUT_OF_RANGE, OFF_PAGE_RIGHT, OFF_PAGE_TOP, DUPLICATE_NAME, ANCHOR_NOT_FOUND (the anchor text is not on that page, so the field falls back to the raw x/y) and OPTIONS_REQUIRED. None of these make create_signature_request fail — that is the point of checking here, because a field that lands off the page is accepted and emailed. The source render must have status 'success'; if its PDF has aged out of storage the call returns 410 and the fix is to re-render. Read-only. Requires a Kamy API key with the `signatures:read` scope; without a key, returns dashboard setup instructions.