Servidor MCP

mu

mu.micro/mu

Qué hace este MCP

Supports personal and collaborative tasks including web browsing, app creation, blogs, bookmarks, discussions, and contact management.

apps_build
Build apps
Queue a durable app build and immediately return its ID and status URL. Use BuildStatus to retrieve progress and the completed app. Reuse request_key on retries. Builds survive server restarts
Esquema de entrada
{'type': 'object', 'required': ['prompt'], 'properties': {'prompt': {'type': 'string', 'description': "Description of the app to build, e.g. 'an expense tracker', 'a packing checklist', 'a water intake counter'"}, 'request_key': {'type': 'string', 'description': 'Reuse this key when retrying the same request. Omit to deduplicate identical descriptions.'}}}
apps_builds
Builds apps
List your app build jobs and outcomes
Esquema de entrada
{'type': 'object', 'properties': {}}
apps_buildstatus
Buildstatus apps
Read your saved app build status by ID. Poll until complete or failed; the same ID survives restarts.
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': ''}}}
apps_collection
Collection apps
List your saved apps and their source references
Esquema de entrada
{'type': 'object', 'properties': {}}
apps_create
Create apps
Create an app — a small, self-contained HTML tool hosted here. Takes the HTML; apps_build writes it for you from a description Apps run in a sandbox. Use fetch('/api/v1/<service>/<method>') or mu.service(name, method, args); mu.api does not exist. Direct external fetch is blocked. Inspect real service schemas and data before coding; never invent fields, rankings or claim runtime verification from static checks.
Esquema de entrada
{'type': 'object', 'required': ['name', 'html'], 'properties': {'html': {'type': 'string', 'description': "The app's HTML, inline CSS and JavaScript included, up to 256KB"}, 'icon': {'type': 'string', 'description': 'An SVG icon'}, 'name': {'type': 'string', 'description': 'App name, e.g. "Pomodoro Timer"'}, 'slug': {'type': 'string', 'description': 'URL-friendly id, e.g. pomodoro-timer. Derived from the name if omitted'}, 'tags': {'type': 'string', 'description': 'Comma-separated tags'}, 'price': {'type': 'number', 'description': 'Credits charged per use, 0 for free, up to 1000'}, 'public': {'type': 'boolean', 'description': 'Publish only when explicitly requested by the owner. Personal apps are private by default.'}, 'private': {'type': 'boolean', 'description': 'Keep this app private to its owner; use true for personal widgets'}, 'description': {'type': 'string', 'description': 'What the app does. Defaults to the name'}}}
apps_edit
Edit apps
Edit an app you own — its name, description, tags, icon, HTML or price. Fields left out keep their value Apps run in a sandbox. Use fetch('/api/v1/<service>/<method>') or mu.service(name, method, args); mu.api does not exist. Direct external fetch is blocked. Inspect real service schemas and data before coding; never invent fields, rankings or claim runtime verification from static checks.
Esquema de entrada
{'type': 'object', 'required': ['slug'], 'properties': {'html': {'type': 'string', 'description': 'New HTML, up to 256KB. Left alone if omitted'}, 'icon': {'type': 'string', 'description': 'New SVG icon. Left alone if omitted'}, 'name': {'type': 'string', 'description': 'New name. Left alone if omitted'}, 'slug': {'type': 'string', 'description': "The app's URL slug, e.g. pomodoro-timer"}, 'tags': {'type': 'string', 'description': 'New comma-separated tags. Left alone if omitted'}, 'price': {'type': 'number', 'description': 'Credits charged per use, 0 for free, up to 1000. Left alone if omitted'}, 'description': {'type': 'string', 'description': 'New description. Left alone if omitted'}}}
apps_embed
Embed apps
Show a saved micro app in the conversation. Embedding preserves access permissions and does not publish the app
Esquema de entrada
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': "The app's URL slug"}}}
apps_fork
Fork apps
Fork an app into your own account, to change independently of the original
Esquema de entrada
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Slug of the app to fork'}, 'new_slug': {'type': 'string', 'description': 'Slug for the copy. Generated from the original if omitted'}}}
apps_read
Read apps
Read an app or build status by slug, including source HTML for apps you own
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': "The app's URL slug, e.g. pomodoro-timer"}}}
apps_search
Search apps
Find your saved private micro apps by name, description or tag
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'tag': {'type': 'string', 'description': 'Filter to apps carrying this tag'}, 'query': {'type': 'string', 'description': 'Search query — name, description or tag'}}}
apps_test
Test apps
Test an app by checking its HTML and checking supported SDK calls; this is not browser execution, so an author finds out what is broken without opening it
Esquema de entrada
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': "The app's URL slug"}}}
archive_list
Browse archive
With a kind, the most recent entries of it. Without one, what kinds are archived and how much of each
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'kind': {'type': 'string', 'description': 'One kind: news, post, video, market, social, reminder. Omit for a summary of what is here'}, 'limit': {'type': 'number', 'description': 'Max entries (default 20, max 100)'}}}
archive_search
Search archive
Search everything this instance has collected, across news, video, markets and posts at once. Use it when the question crosses a service, or when you do not know which service would hold the answer; news_search is narrower and better when you know it is news
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['query'], 'properties': {'kind': {'type': 'string', 'description': 'Narrow to one kind: news, post, video, market, social, reminder. Omit to search everything'}, 'limit': {'type': 'number', 'description': 'Max results (default 20, max 100)'}, 'query': {'type': 'string', 'description': 'What to look for'}}}
blog_create
Create blog
Publish a post to the caller's blog. For anything meant to be read later by other people — notes, write-ups, announcements. For a private note to yourself, prefer files or memory
Esquema de entrada
{'type': 'object', 'required': ['content'], 'properties': {'tags': {'type': 'string', 'description': 'Comma-separated tags'}, 'title': {'type': 'string', 'description': 'Post title. One is generated from the body if omitted'}, 'content': {'type': 'string', 'description': 'The post body, at least 50 characters'}, 'private': {'type': 'boolean', 'description': 'True to keep it to yourself'}}}
blog_delete
Delete blog
Delete one of the caller's own blog posts, by id or title. Refuses posts written by anyone else, and refuses an ambiguous title rather than guessing. Irreversible, so confirm with the user first
Destructivo
Esquema de entrada
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': "The post's id, as given by blog_list"}, 'title': {'type': 'string', 'description': "The post's title, or enough of it to be unambiguous. An ambiguous title is refused rather than guessed — deleting the wrong post is not recoverable"}}}
blog_list
Browse blog
Read recent blog posts — titles, snippets and ids
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Optional max number of posts (default all recent)'}}}
blog_read
Read blog
Read one blog post in full, by id or by title. Use after blog_list has found a candidate and the summary is not enough
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': "The post's id, as given by blog_list"}, 'title': {'type': 'string', 'description': "The post's title, or enough of it to be unambiguous — use this when you have a name rather than an id"}}}
blog_update
Update blog
Edit one of the caller's own posts. Fields left out keep their current value
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': "The post's id, as given by blog_list"}, 'tags': {'type': 'string', 'description': 'New comma-separated tags. Left alone if omitted'}, 'title': {'type': 'string', 'description': 'New title. Left alone if omitted'}, 'content': {'type': 'string', 'description': 'New body, at least 50 characters. Left alone if omitted'}}}
bookmarks_add
Add bookmarks
Save an article, video, blog post or link privately. Re-saving preserves its note
Esquema de entrada
{'type': 'object', 'properties': {'ref': {'type': 'string', 'description': 'Public archive item id for an article, video or blog post'}, 'url': {'type': 'string', 'description': 'Link to save when no archive id is available'}, 'note': {'type': 'string', 'description': 'Optional private note'}, 'title': {'type': 'string', 'description': 'Title for a link'}}}
bookmarks_annotate
Annotate bookmarks
Set or clear a private note on one saved item
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': ''}, 'note': {'type': 'string', 'description': 'Private note, or empty to clear'}}}
bookmarks_delete
Delete bookmarks
Remove one of your saved items
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Saved item id'}}}
bookmarks_get
Read bookmarks
Read one saved item and its private note, with available archived text. Videos have descriptions, not transcripts
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Saved item id'}}}
bookmarks_list
Browse bookmarks
Find your saved reading by text or kind, newest first. Private notes are searched too
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'kind': {'type': 'string', 'description': 'article, video, post or link; empty for all'}, 'limit': {'type': 'number', 'description': 'Maximum items, default 20, at most 100'}, 'query': {'type': 'string', 'description': 'Search your saved titles, links, excerpts and private notes'}, 'offset': {'type': 'number', 'description': 'Number of matching items to skip'}}}
browser_read
Read browser
Open a page in a real browser and read it after its JavaScript has run. Use it when web_fetch comes back empty or with only a nav bar, which is what a page that builds itself in the browser looks like to a plain fetch. web_fetch is free and is the right first try; this costs, because it runs a browser
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'The page to open'}, 'wait': {'type': 'string', 'description': 'Optional CSS selector to wait for before reading, for content that arrives late'}}}
browser_shot
Shot browser
Photograph a page and get back a URL for the picture. What it looks like, rather than what it says — a chart, a layout, a page whose content is an image. Ask for full to capture past the first screenful
Esquema de entrada
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'The page to photograph'}, 'full': {'type': 'boolean', 'description': 'Capture the whole page rather than one screenful'}, 'wait': {'type': 'string', 'description': 'Optional CSS selector to wait for before the shot'}}}
chat_messages
Messages chat
Read the recent conversation in a discussion room
Esquema de entrada
{'type': 'object', 'properties': {'room': {'type': 'string', 'description': 'Room id, as returned by Rooms'}}}
chat_rooms
Rooms chat
List discussion rooms that currently have activity
Esquema de entrada
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'How many rooms to return (default 20)'}}}
chat_send
Send chat
Say something in a discussion room, as the caller. Use chat_rooms to find the room id
Esquema de entrada
{'type': 'object', 'required': ['room', 'message'], 'properties': {'room': {'type': 'string', 'description': 'Room id, as returned by chat_rooms'}, 'message': {'type': 'string', 'description': 'What to say'}}}
chat_source
Source chat
Read one stored message owned by the caller, by id
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Stored message id'}}}
chat_sources
Sources chat
List stored message ids owned by the caller
Esquema de entrada
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': ''}, 'offset': {'type': 'number', 'description': ''}}}
contacts_add
Add contacts
Save someone to the address book. Adding a name already there updates it rather than making a second card
Esquema de entrada
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'The person\'s name, e.g. "Sarah Chen"'}, 'note': {'type': 'string', 'description': 'Anything worth remembering about them'}, 'email': {'type': 'string', 'description': 'Their email address'}, 'phone': {'type': 'string', 'description': 'Their phone number'}}}
contacts_delete
Delete contacts
Remove someone from the address book
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': "The contact's id, from contacts_find or contacts_list"}}}
contacts_find
Find contacts
Look someone up in the address book by name, part of a name, or address. Use this before sending mail to a person named rather than addressed
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'A name, part of a name, or an address'}}}
contacts_list
Browse contacts
List everyone in the caller's address book
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {}}
docs_delete
Delete docs
Delete one of your documents, by id
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Document id, from docs_list'}}}
docs_list
Browse docs
List your documents, most recently changed first, with an optional search over titles and bodies. Use this to find an id
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Maximum documents to return (default 50)'}, 'query': {'type': 'string', 'description': 'Optional text to match against titles and bodies'}}}
docs_read
Read docs
Read one of your documents in full, by id or by exact title
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Document id, from docs_list'}, 'title': {'type': 'string', 'description': 'Exact title, if you do not have the id'}}}
docs_write
Write docs
Write a document — a title and a markdown body. Pass an id to replace one you already have. Private unless you set public. For something long enough to re-read; for a short thing to remember, use notes
Esquema de entrada
{'type': 'object', 'required': ['title', 'content'], 'properties': {'id': {'type': 'string', 'description': 'Existing document id to replace. Omit to create a new one'}, 'title': {'type': 'string', 'description': "The document's title"}, 'public': {'type': 'boolean', 'description': 'Readable by anyone when true. Private by default'}, 'content': {'type': 'string', 'description': "The document's body, as markdown"}}}
events_create
Create events
Schedule a reminder or event at a given time; optionally repeating, and optionally running a prompt through the agent when it fires
Esquema de entrada
{'type': 'object', 'required': ['title', 'when'], 'properties': {'note': {'type': 'string', 'description': 'Optional extra detail'}, 'when': {'type': 'string', 'description': 'When to fire, RFC3339 with timezone offset, e.g. 2026-07-22T15:00:00+01:00'}, 'title': {'type': 'string', 'description': "What to be reminded about, e.g. 'Call the dentist'"}, 'prompt': {'type': 'string', 'description': 'Optional instruction to run through the agent when it fires, e.g. "brief me on today\'s news". The answer is mailed to you'}, 'repeat': {'type': 'string', 'description': 'How often it recurs: hourly, daily, weekly or monthly. Omit for once'}, 'advance': {'type': 'object', 'description': 'Optional advance trigger: minutes before the event and recipient user or agent. Agent prepares a read-only report for delivery at when; actions that change records must use a normal scheduled prompt without advance'}, 'minutes': {'type': 'number', 'description': 'How long it lasts in minutes (default 30)'}}}
events_delete
Delete events
Cancel an event by id
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': "The event's id, as given by events_list"}}}
events_free
Find free time
Find when the caller has nothing booked — open slots of a given length, within working hours
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'to': {'type': 'string', 'description': 'End of the window, RFC3339. Defaults to a week after from'}, 'from': {'type': 'string', 'description': 'Start of the window to search, RFC3339, e.g. 2026-08-03T00:00:00+01:00. Defaults to now'}, 'day_end': {'type': 'number', 'description': 'Latest hour of the day to offer, 0-23 (default 18)'}, 'minutes': {'type': 'number', 'description': 'How long a slot you need, in minutes (default 30)'}, 'day_start': {'type': 'number', 'description': 'Earliest hour of the day to offer, 0-23 (default 9)'}}}
events_list
Browse events
List the caller's upcoming events and reminders, each with its id
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Maximum events, default 20, max 100'}, 'offset': {'type': 'number', 'description': 'Events to skip'}}}
events_read
Read events
Read one schedule owned by the caller
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': ''}}}
events_update
Update events
Update one of your scheduled events without changing its id. Omitted fields stay unchanged; empty notes, prompts or recurrence clear them
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Event id from events_list'}, 'note': {'type': 'string', 'description': 'New note; empty clears it'}, 'when': {'type': 'string', 'description': 'New future time as RFC3339 with timezone offset'}, 'title': {'type': 'string', 'description': 'New title; omitted keeps the existing title'}, 'prompt': {'type': 'string', 'description': 'New standing instruction; empty clears it'}, 'repeat': {'type': 'string', 'description': 'hourly, daily, weekly, monthly; empty makes it one-off'}, 'advance': {'type': 'object', 'description': 'Advance trigger with minutes and recipient user or agent; zero minutes and empty recipient clears it. Agent preparation is read-only'}, 'minutes': {'type': 'number', 'description': 'Duration in minutes, 1 to 10080'}}}
files_delete
Delete files
Delete a file you own
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': "The file's id"}}}
files_driveread
Driveread files
Read the caller's connected Google Drive. Read-only; connect in Account first.
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Drive file id from DriveSearch'}}}
files_drivesearch
Drivesearch files
Search the caller's connected Google Drive. Read-only; connect in Account first.
Esquema de entrada
{'type': 'object', 'properties': {'page': {'type': 'string', 'description': 'Next page token from a previous search'}, 'limit': {'type': 'number', 'description': 'Number of files, up to 20'}, 'query': {'type': 'string', 'description': "Text to find in the caller's connected Google Drive"}}}
files_get
Read files
Read a stored file back by its id
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': "The file's id, as returned by files_put or files_list"}}}
files_list
Browse files
List the caller's stored files, newest first
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {}}
files_put
Store files
Store a file and get a URL for it — a report, a CSV, a transcript
Esquema de entrada
{'type': 'object', 'required': ['name', 'content'], 'properties': {'name': {'type': 'string', 'description': 'File name including its extension, e.g. "report.csv"'}, 'type': {'type': 'string', 'description': 'Optional content type, e.g. "text/csv". Guessed from the name when omitted'}, 'content': {'type': 'string', 'description': 'The file\'s contents — plain text, or base64 when encoding is "base64"'}, 'encoding': {'type': 'string', 'description': '"base64" for binary files; omit for text'}}}
files_share
Share files
Make a file readable by anyone with its URL, or private again
Esquema de entrada
{'type': 'object', 'required': ['id', 'public'], 'properties': {'id': {'type': 'string', 'description': "The file's id"}, 'public': {'type': 'boolean', 'description': 'True to let anyone with the URL read it, false to make it private again'}}}
flights_airport
Airport flights
Report what is happening at an airport right now: what is on the ground, what is on approach and what is climbing out. Live positions, not the timetable, so it says nothing about scheduled or delayed departures
Esquema de entrada
{'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': "An airport code or name, e.g. 'LHR', 'EGLL' or 'Heathrow'"}}}
flights_overhead
Overhead flights
List the aircraft flying near a location right now, nearest first, with altitude, speed, heading and distance. Live positions broadcast by the aircraft themselves, not a schedule
Esquema de entrada
{'type': 'object', 'properties': {'lat': {'type': 'number', 'description': 'Optional latitude, if the location is already known'}, 'lon': {'type': 'number', 'description': 'Optional longitude, if the location is already known'}, 'near': {'type': 'string', 'description': "Where to look: a place name, or an airport name or code, e.g. 'Camden, London' or 'LHR'"}, 'radius': {'type': 'number', 'description': 'Optional radius in nautical miles (default 30, maximum 250)'}}}
flights_status
Status flights
Scheduled, estimated and actual flight arrival/departure times from Aviationstack. Requires a configured provider.
Esquema de entrada
{'type': 'object', 'properties': {'flight': {'type': 'string', 'description': 'IATA flight number, e.g. BA117'}, 'airport': {'type': 'string', 'description': 'IATA airport code, e.g. LHR'}, 'direction': {'type': 'string', 'description': 'arrivals or departures (default arrivals)'}}}
flights_track
Track flights
Find where an aircraft is right now by flight number ('BA117'), radio callsign ('BAW117') or registration ('G-ZBKL'). Only sees aeroplanes that are airborne and in range of a receiver — not finding one does not mean the flight was cancelled
Esquema de entrada
{'type': 'object', 'required': ['flight'], 'properties': {'flight': {'type': 'string', 'description': "A flight number ('BA117'), a radio callsign ('BAW117'), or an aircraft registration ('G-ZBKL')"}}}
food_hygiene
Hygiene food
Food hygiene ratings for UK businesses, from the Food Standards Agency inspections. Takes a business name, a town or postcode, or a lat/lon to look around
Esquema de entrada
{'type': 'object', 'properties': {'lat': {'type': 'number', 'description': 'Optional: look around this point instead'}, 'lon': {'type': 'number', 'description': 'Optional: look around this point instead'}, 'name': {'type': 'string', 'description': "Business name, e.g. 'Nandos'"}, 'limit': {'type': 'number', 'description': 'How many to return, default 10, max 30'}, 'where': {'type': 'string', 'description': 'Town, street or postcode to narrow it to'}}}
food_product
Product food
Look up a packaged food by its barcode — name, brand, ingredients, allergens, nutrition per 100g, Nutri-Score and how processed it is
Esquema de entrada
{'type': 'object', 'required': ['barcode'], 'properties': {'barcode': {'type': 'string', 'description': 'The barcode, 6 to 14 digits, e.g. 5000168034928'}}}
food_search
Search food
Find packaged foods by name or brand, with the barcode of each so one can then be looked up in full
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'number', 'description': 'How many to return, default 10, max 25'}, 'query': {'type': 'string', 'description': "Product or brand name, e.g. 'hobnobs' or 'oat milk'"}}}
groups_create
Create groups
Create a private group
Esquema de entrada
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Group name'}, 'encrypted': {'type': 'boolean', 'description': 'Require end-to-end encrypted XMPP clients; web chat cannot decrypt these messages'}}}
groups_list
Browse groups
List your groups and pending invitations
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {}}
groups_read
Read groups
Read a group you belong to and open its chat
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Group ID'}}}
groups_update
Update groups
Manage invitations, membership and roles. Accept invitations before accessing a group. Removing yourself leaves; owners must transfer ownership first. Delete closes the group for everyone.
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['id', 'action'], 'properties': {'id': {'type': 'string', 'description': ''}, 'value': {'type': 'string', 'description': 'New name for rename, or member/admin/owner for role'}, 'action': {'type': 'string', 'description': 'invite, accept, decline, remove, role, rename or delete'}, 'account': {'type': 'string', 'description': 'Local username for invite, remove or role; defaults to yourself for remove'}}}
hazards_alerts
Alerts hazards
Current disasters worldwide from GDACS — cyclones, floods, volcanoes, wildfires and earthquakes — with an alert level of green, orange or red. Pass lat/lon to ask about somewhere in particular
Esquema de entrada
{'type': 'object', 'properties': {'lat': {'type': 'number', 'description': 'Optional: only alerts near this point'}, 'lon': {'type': 'number', 'description': 'Optional: only alerts near this point'}, 'level': {'type': 'string', 'description': 'Lowest level to include: green, orange or red — default green (everything)'}, 'within_km': {'type': 'number', 'description': 'Optional: how near, in kilometres, default 1000 when lat/lon given'}}}
hazards_floods
Floods hazards
Flood warnings and alerts in force in England, most severe first, from the Environment Agency. The one hazard here that is a forecast rather than a record — a warning says flooding is expected, which is something you can act on. Optionally near a point. England only, and the answer says so
Esquema de entrada
{'type': 'object', 'properties': {'lat': {'type': 'number', 'description': 'Optional: only warnings near this point'}, 'lon': {'type': 'number', 'description': 'Optional: only warnings near this point'}, 'severe': {'type': 'boolean', 'description': 'Only warnings and severe warnings — leave out the be-prepared alerts'}, 'within_km': {'type': 'number', 'description': 'Optional: how near, in kilometres, default 30 when a point is given'}}}
hazards_quakes
Quakes hazards
Recent earthquakes worldwide from the USGS, with magnitude, place and how long ago. Pass lat/lon to ask about somewhere in particular, min for a magnitude floor, and period for hour, day, week or month
Esquema de entrada
{'type': 'object', 'properties': {'lat': {'type': 'number', 'description': 'Optional: only events near this point'}, 'lon': {'type': 'number', 'description': 'Optional: only events near this point'}, 'min': {'type': 'number', 'description': 'Smallest magnitude to include, default 2.5'}, 'period': {'type': 'string', 'description': 'hour, day, week or month — default day'}, 'within_km': {'type': 'number', 'description': 'Optional: how near, in kilometres, default 500 when lat/lon given'}}}
images_daily
Daily images
Retrieve the current daily image or a date
Esquema de entrada
{'type': 'object', 'properties': {'date': {'type': 'string', 'description': 'YYYY-MM-DD; omitted for the current daily image'}}}
images_delete
Delete images
Delete an image you own
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': ''}}}
images_generate
Generate images
Generate an image from a text prompt and return its URL
Esquema de entrada
{'type': 'object', 'required': ['prompt'], 'properties': {'prompt': {'type': 'string', 'description': 'What the image should depict'}}}
images_get
Read images
Retrieve accessible image metadata and URL
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': ''}}}
images_list
Browse images
List stored images or the daily archive with pagination
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Page size, default 20, maximum 100'}, 'scope': {'type': 'string', 'description': 'mine, public, all (own plus public), or daily; defaults to public'}, 'cursor': {'type': 'string', 'description': 'Next cursor from the previous page; keep query and scope unchanged'}}}
images_search
Search images
Search accessible stored images by title, description, prompt and tags; public by default
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'number', 'description': 'Max results (default 20)'}, 'query': {'type': 'string', 'description': 'What the image should show, in words'}, 'scope': {'type': 'string', 'description': 'public, mine, all, or daily; defaults to public'}, 'cursor': {'type': 'string', 'description': ''}}}
images_share
Share images
Explicitly publish or unpublish your image
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': ''}, 'public': {'type': 'boolean', 'description': 'Explicitly publish or unpublish this image'}}}
images_update
Update images
Edit metadata on an image you own
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': ''}, 'tags': {'type': 'array', 'description': ''}, 'title': {'type': 'string', 'description': ''}, 'description': {'type': 'string', 'description': ''}}}
images_upload
Upload images
Upload a private raster image
Esquema de entrada
{'type': 'object', 'required': ['data'], 'properties': {'data': {'type': 'string', 'description': 'Base64 PNG, JPEG or GIF; at most 512 KB decoded and 8 megapixels; browser uploads support 8 MB'}, 'description': {'type': 'string', 'description': 'Image caption, at most 1000 characters'}}}
islam_read
Read islam
Read the full Islamic source passage from an islam_search result, with its source and reference. Preserve distinctions between original text, translation and commentary.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['path'], 'properties': {'path': {'type': 'string', 'description': 'Resource path from a search result, e.g. /quran/2/255 or /seerah/page/10; an https://aslam.org URL is also accepted'}}}
islam_search
Search islam
Search Aslam.org's Quran, hadith, names of Allah, Seerah, Ghazali, IslamQA, adhkar and Riyad us-Salihin. Returns reference excerpts, not generated answers. Distinguish Quran and hadith from biography and scholarly interpretation; cite the source.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'number', 'description': 'Maximum results, 1-50 (default 20)'}, 'query': {'type': 'string', 'description': 'Keywords to find in the Islamic knowledge base'}, 'collection': {'type': 'string', 'description': 'Optional source: quran, hadith, names, seerah, ghazali, islamqa, adhkar or salihin'}}}
mail_gmailread
Gmailread mail
Read the caller's connected Gmail. Read-only; connect in Account first.
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Gmail message id from GmailSearch'}}}
mail_gmailsearch
Gmailsearch mail
Search the caller's connected Gmail. Read-only; connect in Account first.
Esquema de entrada
{'type': 'object', 'properties': {'page': {'type': 'string', 'description': 'Next page token from a previous search'}, 'limit': {'type': 'number', 'description': 'Number of messages, up to 20'}, 'query': {'type': 'string', 'description': 'Gmail search, e.g. is:unread. Limited to the last seven days. Returns headers only; use GmailRead for a relevant message body. Older mail is unavailable'}}}
mail_inbox
Read mail
List the account's most recent messages — read my mail, check my inbox
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'tag': {'type': 'string', 'description': 'Only messages sent to this plus-address tag'}, 'limit': {'type': 'number', 'description': 'Max messages (default 10)'}, 'offset': {'type': 'number', 'description': 'Matching messages to skip'}}}
mail_info
Info mail
How to reach the caller here: the handle, the email address if this instance has a mail domain, and whether mail from outside can arrive at all. Pass a tag for a separate one (you+tag) — give that out, then read only its messages with mail_inbox(tag)
Esquema de entrada
{'type': 'object', 'properties': {'tag': {'type': 'string', 'description': 'A label for this handle, e.g. "research" or "receipts". Omit for the plain one'}}}
mail_markread
Markread mail
Mark specified inbox message IDs, or explicitly all current inbox messages, as read. Changes read status only; does not read, summarize or triage the content.
Esquema de entrada
{'type': 'object', 'properties': {'all': {'type': 'boolean', 'description': 'Explicitly mark all current inbox mail as read'}, 'ids': {'type': 'array', 'description': 'Message IDs to mark read; use all instead to clear the inbox unread count'}}}
mail_read
Read mail
Read your correspondence by id in bounded body-character pages, including attachment names. Follow the returned next offset for the rest. Omitting id retains the legacy inbox summary
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Message id from mail_inbox or mail_search'}, 'limit': {'type': 'number', 'description': 'Body characters per page; default and maximum 2000'}, 'offset': {'type': 'number', 'description': 'Body character offset'}}}
mail_search
Search mail
Search the account's mail and return matching messages
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'tag': {'type': 'string', 'description': 'Only messages sent to this plus-address tag'}, 'limit': {'type': 'number', 'description': 'Max results (default 10)'}, 'query': {'type': 'string', 'description': 'What to look for'}, 'offset': {'type': 'number', 'description': 'Matching messages to skip'}}}
mail_send
Send mail
Write to somebody, as you. A username reaches them on this instance and is free; a full email address leaves over SMTP under this instance's domain, so a reply comes back to your inbox, and is charged. Resolve a name with contacts_find first. Mail that leaves needs MAIL_DOMAIN configured on the instance
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['to', 'subject', 'body'], 'properties': {'to': {'type': 'string', 'description': 'Recipient: a username on this instance, or a full email address. Resolve a name with contacts_find first'}, 'body': {'type': 'string', 'description': 'Message body, plain text'}, 'subject': {'type': 'string', 'description': 'Message subject'}}}
mail_source
Source mail
Read one stored message owned by the caller, by id
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Stored message id'}}}
mail_sources
Sources mail
List stored message ids owned by the caller
Esquema de entrada
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': ''}, 'offset': {'type': 'number', 'description': ''}}}
maps_area
Area maps
Every tile covering a bounding box at a zoom level, as URLs, row by row from the north-west, and how many are already held. What to ask for when you want the map around a place rather than one numbered tile
Esquema de entrada
{'type': 'object', 'properties': {'east': {'type': 'number', 'description': 'Eastern edge, in degrees longitude'}, 'west': {'type': 'number', 'description': 'Western edge'}, 'zoom': {'type': 'number', 'description': 'Zoom level, 0 to 20'}, 'north': {'type': 'number', 'description': 'Northern edge, in degrees latitude'}, 'south': {'type': 'number', 'description': 'Southern edge'}, 'style': {'type': 'string', 'description': 'road, outdoor or light'}}}
maps_tile
Tile maps
The URL for one map tile, by zoom, column and row. Styles: road, outdoor (rights of way and contours), light (a quiet basemap to draw on). Free. Britain only
Esquema de entrada
{'type': 'object', 'properties': {'x': {'type': 'number', 'description': 'Tile column at that zoom'}, 'y': {'type': 'number', 'description': 'Tile row at that zoom'}, 'z': {'type': 'number', 'description': 'Zoom level, 0 to 20'}, 'style': {'type': 'string', 'description': 'road, outdoor or light — outdoor has rights of way and contours'}}}
markets_convert
Convert markets
Convert an amount from one currency to another — 250 GBP in JPY. Uses European Central Bank reference rates, and takes a past date back to 1999. Crypto converts at the live price through the dollar
Esquema de entrada
{'type': 'object', 'required': ['from', 'to'], 'properties': {'to': {'type': 'string', 'description': 'Currency or asset to convert to, as a code: JPY, USD, ETH…'}, 'date': {'type': 'string', 'description': 'Optional: the rate on a past day, as 2020-01-03. Currencies only, back to 1999'}, 'from': {'type': 'string', 'description': 'Currency or asset to convert from, as a code: GBP, USD, EUR, BTC…'}, 'amount': {'type': 'number', 'description': 'How much to convert. Default 1'}}}
markets_history
History markets
Read daily closing prices for a supported instrument over a range of up to 366 days. Missing trading days are omitted. Uses Yahoo Finance
Esquema de entrada
{'type': 'object', 'required': ['symbol'], 'properties': {'end': {'type': 'string', 'description': 'Last date inclusive, YYYY-MM-DD; default today. Maximum range 366 days'}, 'limit': {'type': 'number', 'description': 'Maximum points per page, default 20, maximum 100'}, 'start': {'type': 'string', 'description': 'First date, YYYY-MM-DD; default 30 days ago'}, 'offset': {'type': 'number', 'description': ''}, 'symbol': {'type': 'string', 'description': 'Supported ticker, e.g. BTC, AAPL, GOLD or EUR'}}}
markets_list
Browse markets
Get live prices for cryptocurrencies, stocks, commodities (oil, gold, silver, copper and crops), futures and currencies
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Maximum instruments, default 20, max 100'}, 'offset': {'type': 'number', 'description': 'Instruments to skip'}, 'category': {'type': 'string', 'description': 'crypto (BTC, ETH, SOL…), stocks, commodities (OIL, GOLD, SILVER, COPPER, COFFEE, WHEAT, CORN, SOYBEANS, OATS), futures (the metals and oil alone) or currencies (EUR, GBP, JPY…). Default crypto'}}}
markets_quote
Quote markets
Read one supported instrument price in USD, with source, timestamp and staleness
Esquema de entrada
{'type': 'object', 'required': ['symbol'], 'properties': {'symbol': {'type': 'string', 'description': 'One supported ticker, e.g. BTC, AAPL, GOLD or EUR; prices are in USD'}}}
news_headlines
Headlines news
Read the home card headlines: latest story per topic, freshest first, at most ten
Esquema de entrada
{'type': 'object', 'properties': {}}
news_list
Browse news
Read recent news headlines with short summaries, balanced across topics
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'day': {'type': 'string', 'description': 'today to restrict headlines to the caller’s local calendar day'}, 'limit': {'type': 'number', 'description': 'Optional max number of headlines (default 30)'}, 'topic': {'type': 'string', 'description': 'Optional topic/category filter (e.g. tech, world, business)'}}}
news_read
Read news
Read one news article in full by its id or URL
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Article id (from Headlines) or article URL'}}}
news_search
Search news
Search indexed and live news for a topic
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'Search terms, e.g. latest AI news'}}}
notes_add
Add notes
Write a note under a title, so it is there next conversation. Writing a title that exists rewrites that note
Esquema de entrada
{'type': 'object', 'required': ['title', 'text'], 'properties': {'text': {'type': 'string', 'description': 'What the note says'}, 'title': {'type': 'string', 'description': 'What the note is called, e.g. "location" or "project brief". Writing a title that exists rewrites that note'}}}
notes_delete
Delete notes
Delete one note by title
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['title'], 'properties': {'title': {'type': 'string', 'description': 'The note to delete, as returned by notes_list'}}}
notes_get
Read notes
Read one note by title. Use it when you know the title; notes_list when you do not
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['title'], 'properties': {'title': {'type': 'string', 'description': "The note's title, as given to notes_add"}}}
notes_list
Browse notes
List every note the caller has written, with its text
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {}}
notify_devices
Devices notify
Whether this account can be reached by notification at all, and on which devices. Worth asking before promising to tell somebody something
Esquema de entrada
{'type': 'object', 'properties': {}}
notify_send
Send notify
Interrupt yourself on your own devices — a phone, a laptop — with the page closed. For the thing that cannot wait until the next time somebody looks. An answer to a question belongs in the thread it was asked in, not here
Esquema de entrada
{'type': 'object', 'required': ['title'], 'properties': {'url': {'type': 'string', 'description': 'Where tapping it goes, e.g. /inbox. A notification you cannot act on trains someone to ignore the next one'}, 'body': {'type': 'string', 'description': 'A second line, up to about 300 characters. Optional'}, 'title': {'type': 'string', 'description': 'The line on the lock screen. Short — this is the whole message on a watch'}}}
places_address
Get an email address
Name the place at a latitude and longitude — the reverse of places_geocode. Use it whenever you have coordinates and need to say where that is
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['lat', 'lon'], 'properties': {'lat': {'type': 'number', 'description': 'Latitude, e.g. 51.5308'}, 'lon': {'type': 'number', 'description': 'Longitude, e.g. -0.1238'}}}
places_elevation
Elevation places
How high a place is above sea level, in metres and feet. Sampled from a 90-metre global elevation model, so a summit reads a little under its surveyed height
Esquema de entrada
{'type': 'object', 'properties': {'lat': {'type': 'number', 'description': 'Optional latitude, if the location is already known'}, 'lon': {'type': 'number', 'description': 'Optional longitude, if the location is already known'}, 'place': {'type': 'string', 'description': "A place name or address, e.g. 'Denver' or 'Ben Nevis'"}}}
places_geocode
Geocode places
Resolve a place name or address to coordinates
Esquema de entrada
{'type': 'object', 'properties': {'address': {'type': 'string', 'description': 'A place name or address to locate'}}}
places_nearby
Find nearby places
List points of interest near a location. Each one says whether it is open right now where that is known, so "is anything open near me" is one call
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'lat': {'type': 'number', 'description': 'Optional latitude'}, 'lon': {'type': 'number', 'description': 'Optional longitude'}, 'near': {'type': 'string', 'description': "Place to look around, e.g. 'Camden, London' (or give lat/lon)"}, 'query': {'type': 'string', 'description': "Optional keyword to filter by, e.g. 'cafe'"}, 'radius': {'type': 'number', 'description': 'Optional radius in metres (default 1000)'}}}
places_search
Search places
Find places by name or category, optionally near a location. Each one says whether it is open right now where that is known, rather than raw opening-hours text to interpret
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['query'], 'properties': {'lat': {'type': 'number', 'description': 'Optional latitude, if the location is already known'}, 'lon': {'type': 'number', 'description': 'Optional longitude, if the location is already known'}, 'near': {'type': 'string', 'description': "Optional place to search near, e.g. 'Shoreditch, London' or 'SF'"}, 'query': {'type': 'string', 'description': "What to look for, e.g. 'ramen', 'pharmacy', 'Blue Bottle Coffee'"}, 'radius': {'type': 'number', 'description': 'Optional search radius in metres (default 2000)'}}}
prayer_qibla
Qibla for prayer
Get the qibla — the compass bearing to face for Islamic prayer from a location
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['lat', 'lon'], 'properties': {'lat': {'type': 'number', 'description': 'Latitude of the location'}, 'lon': {'type': 'number', 'description': 'Longitude of the location'}}}
prayer_reflection
Prayer times for prayer
Get today's Islamic reflection — a verse of the Quran with its surah, a saying of the Prophet, and a name of Allah
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {}}
prayer_saying
Prayer times for prayer
Look up a hadith from Sahih al-Bukhari, optionally from a given book
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'book': {'type': 'number', 'description': 'Book number within Sahih al-Bukhari. Omit for a saying from any book'}}}
prayer_search
Search prayer
Search the Quran, the hadith and the names of Allah by meaning — ask a question in plain language rather than naming a reference
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'A question in plain language, e.g. "what is said about patience"'}}}
prayer_times
Prayer times for prayer
Get today's Islamic prayer times (salah) for a location, and which prayer is next
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['lat', 'lon'], 'properties': {'tz': {'type': 'string', 'description': 'IANA timezone of the location, e.g. Europe/London (defaults to UTC)'}, 'lat': {'type': 'number', 'description': 'Latitude of the location'}, 'lon': {'type': 'number', 'description': 'Longitude of the location'}, 'method': {'type': 'string', 'description': 'Calculation convention: isna, mwl, egypt, karachi, gulf, diyanet, muis or jakim (defaults to isna)'}}}
prayer_verse
Prayer times for prayer
Look up a chapter of the Quran, or one verse within it, by number. Use prayer_search to ask a question instead of naming a reference
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['chapter'], 'properties': {'verse': {'type': 'number', 'description': 'Verse number within the chapter. Omit for the whole chapter'}, 'chapter': {'type': 'number', 'description': 'Chapter (surah) number, 1-114'}}}
recall_conversation
Conversation recall
Read one whole conversation back by id, as recall_search and recall_list report it
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': "The conversation's id, as recall_search reports it"}, 'limit': {'type': 'number', 'description': 'Max messages, most recent kept (default 50)'}}}
recall_list
Browse recall
List the caller's conversations, most recently active first, with what each is about and where it happened
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Max conversations (default 20)'}, 'client': {'type': 'string', 'description': 'Only conversations on one client: web, mail, cli'}}}
recall_search
Search recall
Search everything the caller has said to an agent and been told, wherever they said it — the browser, email, or the command line. Use it when something was mentioned and you need to find where; notes_get is for a fact somebody wrote down on purpose
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'number', 'description': 'Max results (default 20, max 200)'}, 'query': {'type': 'string', 'description': 'What to look for — a word or phrase that was said'}, 'client': {'type': 'string', 'description': 'Narrow to where it was said: web, mail, cli. Omit for everywhere'}}}
routes_directions
Directions routes
The turn-by-turn route between two places, with the distance for each instruction. Use ETA instead when only the travel time is wanted — this asks the provider for more and costs more
Esquema de entrada
{'type': 'object', 'properties': {'to': {'type': 'string', 'description': "Where the journey ends, e.g. 'Heathrow Airport'"}, 'from': {'type': 'string', 'description': "Where the journey starts, e.g. 'King's Cross, London' (or give from_lat/from_lon)"}, 'mode': {'type': 'string', 'description': 'How to travel: drive (default), walk, cycle or transit'}, 'to_lat': {'type': 'number', 'description': 'Optional end latitude, if already known'}, 'to_lon': {'type': 'number', 'description': 'Optional end longitude, if already known'}, 'from_lat': {'type': 'number', 'description': 'Optional start latitude, if already known'}, 'from_lon': {'type': 'number', 'description': 'Optional start longitude, if already known'}, 'arrive_by': {'type': 'string', 'description': 'Be there by this time, as RFC3339. Cannot be combined with depart_at'}, 'depart_at': {'type': 'string', 'description': 'When the journey starts, as RFC3339. Defaults to now'}}}
routes_eta
Travel time
How long it takes to travel between two places, by road rather than as the crow flies. Can be asked about a future departure, or told when you need to arrive and answer when to leave
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'to': {'type': 'string', 'description': "Where the journey ends, e.g. 'Heathrow Airport'"}, 'from': {'type': 'string', 'description': "Where the journey starts, e.g. 'King's Cross, London' (or give from_lat/from_lon)"}, 'mode': {'type': 'string', 'description': 'How to travel: drive (default), walk, cycle or transit'}, 'to_lat': {'type': 'number', 'description': 'Optional end latitude, if already known'}, 'to_lon': {'type': 'number', 'description': 'Optional end longitude, if already known'}, 'from_lat': {'type': 'number', 'description': 'Optional start latitude, if already known'}, 'from_lon': {'type': 'number', 'description': 'Optional start longitude, if already known'}, 'arrive_by': {'type': 'string', 'description': 'Be there by this time, as RFC3339. Answers when to leave. Cannot be combined with depart_at'}, 'depart_at': {'type': 'string', 'description': 'When the journey starts, as RFC3339 (e.g. 2026-08-13T08:00:00Z). Defaults to now. Traffic and timetables are read for this time'}}}
routes_nearest
Nearest routes
Given a starting point and several destinations, say which is quickest to reach and put them in order. Each destination is a separate routing lookup, so ask about the places you are actually choosing between rather than a long list
Esquema de entrada
{'type': 'object', 'required': ['to'], 'properties': {'to': {'type': 'array', 'description': "The places to compare, e.g. ['Heathrow', 'Gatwick', 'Stansted']"}, 'from': {'type': 'string', 'description': "Where you are starting from, e.g. 'Shoreditch, London' (or give from_lat/from_lon)"}, 'mode': {'type': 'string', 'description': 'How to travel: drive (default), walk, cycle or transit'}, 'from_lat': {'type': 'number', 'description': 'Optional start latitude, if already known'}, 'from_lon': {'type': 'number', 'description': 'Optional start longitude, if already known'}}}
shell_run
Run shell
Run a shell command in your account's container sandbox and get back what it wrote. A real shell in a container: pipes, redirection and && all work, the working directory is /work and files there persist between calls. Use it to build, test, run scripts and move files about. A non-zero exit code comes back in the response rather than as an error, so read the output — a failing build is an answer
Esquema de entrada
{'type': 'object', 'required': ['command'], 'properties': {'dir': {'type': 'string', 'description': 'Directory to run it in, under /work. Defaults to /work'}, 'command': {'type': 'string', 'description': "A shell command to run, e.g. 'go test ./... 2>&1 | tail -40'"}, 'timeout': {'type': 'number', 'description': "Seconds to allow, up to the instance's maximum. Defaults to 120"}}}
shell_write
Write shell
Put a file in your account's container sandbox, creating any missing directories. The only file operation that is not a shell command, because it is the one a shell is bad at: source is full of quotes and backticks and a heredoc will mangle it. The content arrives as a string and reaches the file without a shell seeing it. To read, list, search or change a file, use the shell — cat, ls, grep and sed are right there
Esquema de entrada
{'type': 'object', 'required': ['path', 'content'], 'properties': {'path': {'type': 'string', 'description': 'Where to put it, relative to /work — not to the directory your last command left you in. Missing directories are created'}, 'content': {'type': 'string', 'description': 'The whole file. This replaces what was there'}}}
sms_history
History sms
Read the texts this account has sent and received, newest first. Both directions, which is why it is not called an inbox
Esquema de entrada
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'How many messages to return, newest first (default 50, max 200)'}}}
sms_number
Number sms
The number texts are sent from, which numbers are verified as yours, and how many messages are left today
Esquema de entrada
{'type': 'object', 'properties': {}}
sms_send
Send sms
Message somebody from this instance's number, by text or on WhatsApp. A text is charged per 160-character segment; WhatsApp is charged per 24-hour conversation and only reaches somebody who wrote in within the last day. Capped per day either way, and the recipient can stop it with STOP
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['to', 'text'], 'properties': {'to': {'type': 'string', 'description': 'The number to message, in international format, e.g. +447700900123. Use contacts_find to turn a name into one'}, 'text': {'type': 'string', 'description': 'What to say. A text is charged per 160-character segment, so brevity is not only good manners'}, 'channel': {'type': 'string', 'description': "How to send it: 'sms' (the default) or 'whatsapp'. WhatsApp only works with somebody who messaged this instance in the last 24 hours — reply on the channel they used"}}}
sms_source
Source sms
Read one stored message owned by the caller, by id
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Stored message id'}}}
sms_sources
Sources sms
List stored message ids owned by the caller
Esquema de entrada
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': ''}, 'offset': {'type': 'number', 'description': ''}}}
sms_verify
Verify sms
Claim a number as your own, so texts arriving from it reach this account. Call it with just the number to have a code texted there, then again with the code
Esquema de entrada
{'type': 'object', 'required': ['number'], 'properties': {'code': {'type': 'string', 'description': 'The code that was texted to that number. Omit to have one sent'}, 'number': {'type': 'string', 'description': 'Your own number, in international format'}}}
social_list
Browse social
Read the latest social posts from the network
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Optional max number of posts (default all recent)'}}}
social_search
Search social
Search public posts on this instance by keyword. This is the instance's own feed, not the wider internet — use web_search for that
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'number', 'description': 'Max results (default 20)'}, 'query': {'type': 'string', 'description': 'What to look for in posts on this instance'}}}
stream_list
Browse stream
Read what has happened here recently
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'How many entries to return (default 20, max 100)'}}}
tasks_create
Create tasks
Add a task. Assign it to the agent and it can pick the task up itself
Esquema de entrada
{'type': 'object', 'required': ['title'], 'properties': {'due': {'type': 'string', 'description': 'Optional deadline, RFC3339 or 2006-01-02 15:04'}, 'title': {'type': 'string', 'description': 'What is to be done'}, 'detail': {'type': 'string', 'description': 'Anything the doer needs to know: context, links, constraints'}, 'assignee': {'type': 'string', 'description': 'me (default) or agent — assign to the agent and it can pick the task up'}}}
tasks_delete
Delete tasks
Remove a task
Destructivo
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': "The task's id"}}}
tasks_list
Browse tasks
List the caller's tasks, open ones first; optionally filtered by state
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Maximum tasks, default 20, max 100'}, 'offset': {'type': 'number', 'description': 'Tasks to skip'}, 'status': {'type': 'string', 'description': 'Optional filter: todo, doing, done, failed or blocked'}}}
tasks_next
Next tasks
The next task assigned to the agent — what to work on now
Esquema de entrada
{'type': 'object', 'properties': {}}
tasks_read
Read tasks
Read one task owned by the caller
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': "The task's id"}}}
tasks_update
Update tasks
Change a task: its state, or the result of doing it
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': "The task's id"}, 'title': {'type': 'string', 'description': 'New title'}, 'detail': {'type': 'string', 'description': 'New detail'}, 'result': {'type': 'string', 'description': 'What came of it — the answer, the outcome, what was found'}, 'status': {'type': 'string', 'description': 'todo, doing, done, failed or blocked'}}}
text_classify
Classify text
Sort text into one of the labels you give, with a confidence. For routing, triage and moderation. Capped at 30,000 characters
Esquema de entrada
{'type': 'object', 'required': ['text', 'labels'], 'properties': {'text': {'type': 'string', 'description': 'The text to sort'}, 'labels': {'type': 'string', 'description': 'Comma-separated labels to choose between'}}}
text_extract
Extract text
Turn text into JSON matching a schema you give. Pass the fields you want as a JSON schema or a plain description; returns JSON only. Capped at 30,000 characters
Esquema de entrada
{'type': 'object', 'required': ['text', 'schema'], 'properties': {'text': {'type': 'string', 'description': 'The text to read'}, 'schema': {'type': 'string', 'description': 'A JSON schema, or a plain description of the fields wanted'}}}
text_summarise
Summarise text
Summarise text into a few sentences. Pass style=bullets for a list, or a sentence count. Capped at 30,000 characters
Esquema de entrada
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The text to summarise'}, 'lines': {'type': 'number', 'description': 'Optional: roughly how many sentences or bullets'}, 'style': {'type': 'string', 'description': "Optional: 'bullets' for a list, otherwise prose"}}}
text_translate
Translate text
Translate text into another language, preserving formatting. Capped at 30,000 characters
Esquema de entrada
{'type': 'object', 'required': ['text', 'to'], 'properties': {'to': {'type': 'string', 'description': "Target language, e.g. 'French' or 'ar'"}, 'text': {'type': 'string', 'description': 'The text to translate'}}}
transit_arrivals
Arrivals transit
What is due at a stop and when. Takes a stop name or an id. In London this is live from TfL — buses, tube, DLR, Overground and Elizabeth line. Elsewhere it is the published timetable, and says so
Esquema de entrada
{'type': 'object', 'required': ['stop'], 'properties': {'stop': {'type': 'string', 'description': "Stop name or id, e.g. 'Oxford Circus' or 940GZZLUOXC"}}}
transit_buses
Buses transit
Where the buses actually are near a point right now — line, where each is heading and how far away, nearest first. England, from the Bus Open Data Service. This is position rather than prediction: it says what is moving, not when it reaches you
Esquema de entrada
{'type': 'object', 'properties': {'lat': {'type': 'number', 'description': 'Latitude of the point to look around'}, 'lon': {'type': 'number', 'description': 'Longitude of the point'}, 'limit': {'type': 'number', 'description': 'How many to list, default 10'}, 'within_km': {'type': 'number', 'description': 'How far to look, in kilometres — default 2, most 25'}}}
transit_feeds
Feeds transit
Which published timetables this instance carries, and which others it could — with the size of each, so an operator can see what switching one on costs. Also names the feeds that look right but whose timetables have run out
Esquema de entrada
{'type': 'object', 'properties': {'country': {'type': 'string', 'description': 'Optional two-letter code to narrow the list: GB, US, ES…'}}}
transit_nearby
Find nearby transit
Bus stops and stations near a point, nearest first, with the id each one is called by. London live from TfL; elsewhere from whichever published timetables this instance has loaded
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['lat', 'lon'], 'properties': {'lat': {'type': 'number', 'description': 'Latitude'}, 'lon': {'type': 'number', 'description': 'Longitude'}, 'radius': {'type': 'number', 'description': 'Metres to search, default 400, max 2000'}}}
transit_status
Status transit
Which lines are delayed, part-suspended or closed right now, and why. London only
Esquema de entrada
{'type': 'object', 'properties': {'modes': {'type': 'string', 'description': 'Optional: tube, dlr, overground, elizabeth-line, tram — comma separated'}}}
transit_trains
Trains transit
The live departure or arrival board at a British station, by its three-letter code — KGX, MAN, EDB. Scheduled and expected time, platform, operator and where it is going, plus any disruption notice. From National Rail
Esquema de entrada
{'type': 'object', 'properties': {'rows': {'type': 'number', 'description': 'How many services, 1 to 20, default 10'}, 'station': {'type': 'string', 'description': 'Three-letter station code — KGX, MAN, EDB'}, 'arrivals': {'type': 'boolean', 'description': 'Show what is coming in rather than what is leaving'}}}
users_find
Find users
Look somebody up by username or display name. Use this to turn a name somebody mentioned into an address you can write to
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'A username or part of a display name'}}}
users_get
Read users
One user, by username
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Their username'}}}
users_list
Browse users
Everyone on this instance, online first and then newest. Agents are included and marked; an agent account is a user here like any other
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'How many to return, newest first. Default 100'}, 'online': {'type': 'boolean', 'description': 'Only those seen in the last three minutes'}}}
video_list
Browse video
Read the latest videos from curated channels
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Maximum videos per page, default 20, maximum 100'}, 'offset': {'type': 'number', 'description': 'Videos to skip'}, 'category': {'type': 'string', 'description': 'Optional curated category'}}}
video_read
Read video
Read the metadata and description of one video already discovered by this instance. No transcript is available
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Video id or video_ archive id from List or Search'}}}
video_search
Search video
Search YouTube by keyword using this instance's search quota. Results are not restricted to the curated channels
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'What to search for'}, 'channel': {'type': 'string', 'description': 'Exact YouTube channel ID when the user requests a particular channel; obtain it from search results'}}}
wallet_address
Get an email address
Your own address on Base, to receive USDC. Created the first time you ask. Funds sent on any other chain land at the same address there and cannot be reached from here
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {}}
wallet_balance
Check wallet
What your wallet holds in USDC on Base. Says so plainly when the chain could not be reached, because that is not the same as holding nothing
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {}}
weather_air
Air weather
Air quality at a location right now — AQI, PM2.5, PM10, ozone, nitrogen dioxide, UV index, and pollen where it is counted
Esquema de entrada
{'type': 'object', 'required': ['lat', 'lon'], 'properties': {'lat': {'type': 'number', 'description': 'Latitude of the location'}, 'lon': {'type': 'number', 'description': 'Longitude of the location'}}}
weather_forecast
Forecast weather
Get the weather forecast for a location — current conditions, the days ahead, and today's sunrise, sunset and how much daylight is left, which is the fact that decides an afternoon outdoors
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['lat', 'lon'], 'properties': {'lat': {'type': 'number', 'description': 'Latitude of the location'}, 'lon': {'type': 'number', 'description': 'Longitude of the location'}}}
weather_history
History weather
What the weather actually was at a location between two dates — average high and low, total rainfall and the extremes. Records run a few days behind today
Esquema de entrada
{'type': 'object', 'required': ['lat', 'lon', 'start', 'end'], 'properties': {'end': {'type': 'string', 'description': 'Last day, as 2025-08-31'}, 'lat': {'type': 'number', 'description': 'Latitude of the location'}, 'lon': {'type': 'number', 'description': 'Longitude of the location'}, 'start': {'type': 'string', 'description': 'First day, as 2025-08-01'}}}
weather_lookup
Lookup weather
Look up the weather by town or city name
Esquema de entrada
{'type': 'object', 'properties': {'day': {'type': 'string', 'description': 'today or tomorrow; empty returns the current multi-day forecast'}, 'focus': {'type': 'string', 'description': 'rain for a rain-focused answer, otherwise a general forecast'}, 'place': {'type': 'string', 'description': 'Town or city to look up'}}}
weather_marine
Marine weather
Sea state at a coastal or offshore point — wave height, period and direction now and for the days ahead, with sea temperature
Esquema de entrada
{'type': 'object', 'required': ['lat', 'lon'], 'properties': {'lat': {'type': 'number', 'description': 'Latitude of a coastal or offshore point'}, 'lon': {'type': 'number', 'description': 'Longitude of a coastal or offshore point'}, 'days': {'type': 'number', 'description': 'How many days ahead, 1 to 7 — default 3'}}}
web_fetch
Fetch web
Fetch a web page by URL and return its cleaned readable content, stripping ads, popups and navigation. Needs an account
Esquema de entrada
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'The URL to fetch'}}}
web_images
Images web
Search the web for images, thumbnails and original source pages
Esquema de entrada
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'number', 'description': 'Maximum results, default 24'}, 'query': {'type': 'string', 'description': 'Images to find on the web'}}}
web_search
Search web
Search the web for current information and news
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'number', 'description': 'Optional max number of results'}, 'query': {'type': 'string', 'description': 'Search query'}}}
Añadido
groups_update
29 de September de 2026 a las 02:59
Añadido
groups_read
29 de September de 2026 a las 02:59
Añadido
groups_list
29 de September de 2026 a las 02:59
Añadido
groups_create
29 de September de 2026 a las 02:59
Modificado
events_update
29 de September de 2026 a las 02:59
Modificado
events_create
29 de September de 2026 a las 02:59
Modificado
video_search
25 de September de 2026 a las 02:59
Añadido
tasks_read
25 de September de 2026 a las 02:59
Añadido
sms_sources
25 de September de 2026 a las 02:59
Añadido
sms_source
25 de September de 2026 a las 02:59
Añadido
mail_sources
25 de September de 2026 a las 02:59
Añadido
mail_source
25 de September de 2026 a las 02:59
Añadido
events_read
25 de September de 2026 a las 02:59
Añadido
chat_sources
25 de September de 2026 a las 02:59
Añadido
chat_source
25 de September de 2026 a las 02:59
Modificado
apps_test
25 de September de 2026 a las 02:59
Modificado
apps_search
25 de September de 2026 a las 02:59
Modificado
apps_read
25 de September de 2026 a las 02:59
Modificado
apps_embed
25 de September de 2026 a las 02:59
Modificado
apps_edit
25 de September de 2026 a las 02:59
Modificado
apps_create
25 de September de 2026 a las 02:59
Añadido
apps_collection
25 de September de 2026 a las 02:59
Añadido
apps_builds
25 de September de 2026 a las 02:59
Eliminado
work_submit
21 de September de 2026 a las 02:57
Eliminado
work_retry
21 de September de 2026 a las 02:57
Eliminado
work_list
21 de September de 2026 a las 02:57
Eliminado
work_get
21 de September de 2026 a las 02:57
Eliminado
inbox_read
21 de September de 2026 a las 02:57
Eliminado
inbox_mark_unread
21 de September de 2026 a las 02:57
Eliminado
inbox_mark_read
21 de September de 2026 a las 02:57