Skip to main content

MCP Tools Reference

Complete reference of all available MCP tools.

The MCP server exposes 10 grouped tools (each with an action enum parameter), plus fyso_welcome and setup_scheduling. Legacy tool names such as export_metadata and import_metadata are still dispatched for backward compatibility. Configure which tools are exposed with the FYSO_TOOLS environment variable. See Tool Profiles.

How grouped tools work

Each grouped tool accepts an action parameter that selects the operation. Additional parameters depend on the action chosen. Example:

fyso_data({ action: "create", entity: "tasks", data: { title: "Fix bug" } })
fyso_data({ action: "query", entity: "tasks", filters: "status = open" })
fyso_auth({ action: "list_tenants" })

Standalone utility tools

These tools are advertised separately from the grouped routers:

ToolDescriptionNotes
fyso_welcomeFirst-run onboarding helperSuggests an initial schema based on business type
setup_schedulingInitialise scheduling system entitiesRun once on a new tenant before get_slots or create_booking
export_metadataBackward-compatible metadata export toolSee Import / Export Metadata
import_metadataBackward-compatible metadata import toolSee Import / Export Metadata


fyso_data — Records and bookings

CRUD operations on records and scheduling.

ActionDescriptionRequired params
createCreate a new recordentity, data
querySearch/filter recordsentity
updateModify a recordentity, id, data
deleteRemove a recordentity, id
create_bookingBook a scheduling slotprofessional_id, date, time
get_slotsAvailable scheduling slotsprofessional_id, date

Parameters

ParamTypeUsed byDescription
actionstring (enum)allOperation to perform
entitystringcreate, query, update, deleteEntity name
dataobjectcreate, updateRecord data
idstringupdate, deleteRecord ID
filtersstringqueryFilter expression. Operators: =, !=, >, <, >=, <=, contains. Combine with AND (OR not supported server-side). Example: status = active AND nombre contains juan
sortstringqueryField to sort by
order_dirasc | descquerySort direction
limitnumberqueryMax records (default: 50, max: 200)
offsetnumberqueryPagination offset
semanticstringqueryNatural language semantic search
min_similaritynumberquerySimilarity threshold 0-1 for semantic search
resolve_depthnumberqueryRelation resolution depth (default: 1, max: 3)
professional_idstringcreate_booking, get_slotsProfessional UUID
patient_idstringcreate_bookingPatient/client UUID
datestringcreate_booking, get_slotsDate YYYY-MM-DD
timestringcreate_bookingTime HH:MM
durationnumbercreate_bookingDuration in minutes
notesstringcreate_bookingBooking notes
fromstringget_slotsRange start YYYY-MM-DD
tostringget_slotsRange end YYYY-MM-DD

fyso_schema — Entities and fields

Manage entities, fields, and schema versioning.

ActionDescriptionRequired params
listList entities
getGet entity schemaentityName
add_fieldAdd field to published entityentityName, field or inline params
manage_fieldsCRUD custom fieldsentityName
generateCreate entity from definitiondefinition
publishPublish entity draftentityName
discardDiscard entity draftentityName
deleteDelete entity (irreversible)entityName, confirm: true
list_changesPending schema changes

Parameters

ParamTypeUsed byDescription
actionstring (enum)allOperation to perform
entityNamestringget, add_field, manage_fields, publish, discard, deleteEntity name
include_draftsbooleanlistInclude draft entities
include_publishedbooleanlist_changesInclude published with no pending changes
versionstringgetVersion to retrieve: number, draft, or published
fieldobjectadd_field, manage_fieldsField definition: { name, fieldKey, fieldType, isRequired?, isUnique?, description?, config? }
field_actionlist | add | update | deletemanage_fieldsSub-action for custom fields
field_typecustom | system | allmanage_fieldsField filter for listing
fieldIdstringmanage_fieldsField ID for update/delete
definitionobjectgenerateEntity definition: { entity: { name, displayName?, description? }, fields: [{ name, fieldKey, fieldType, ... }] }
auto_publishbooleangenerateAuto-publish after generate (requires version_message)
version_messagestringpublish, generateVersion message
confirmbooleandeleteMust be true to confirm deletion
fieldTypestringadd_fieldField type: text, textarea, number, email, phone, date, boolean, select, relation, file, location

fyso_rules — Business rules

Create, test, publish, and manage business rules.

Required: action and entityName for all actions.

ActionDescriptionAdditional required params
createCreate rule from DSLname, triggerType, rule
getRule detailsruleId
listList rules
publishActivate draft ruleruleId
deleteDelete ruleruleId
testDry-run with test dataruleId, testData
logsExecution historyruleId

Parameters

ParamTypeUsed byDescription
actionstring (enum)allOperation to perform
entityNamestringallEntity the rule belongs to
ruleIdstringget, publish, delete, test, logsRule ID
namestringcreateRule name
descriptionstringcreateRule description
triggerTypefield_change | before_save | after_save | on_loadcreateWhen the rule triggers
triggerFieldsstring[]createFields that trigger the rule
ruleobjectcreateRule DSL with compute/validate/transform/actions
ruleDslobjectcreateAlias for rule
prioritynumbercreateExecution priority, lower = first (default: 100)
auto_publishbooleancreateAuto-publish after create
include_draftsbooleanlistInclude draft rules
testDataobjecttestTest record data for dry-run
limitnumberlogsMax log entries

fyso_auth — Users, roles, tenants, and organizations

User management, RBAC, tenant operations, organization management, and API keys.

ActionDescriptionRequired params
create_userCreate tenant useremail, password, name
list_usersList tenant users
update_passwordReset user passworduserId, password
create_roleCreate role with permissionsname, permissions
list_rolesList roles
assign_roleAssign role to useruserId, roleId
revoke_roleRevoke role from useruserId, roleId
loginAuthenticate as tenant usertenantSlug, email, password
list_tenantsList accessible tenants
select_tenantSelect active tenanttenantSlug
create_tenantCreate a new tenant (plan quota enforced: free=1, pro=5)name
generate_invitationGenerate beta invitation code (FYSO-XXXX-XXXX)
list_invitationsList invitation codes with usage stats
list_orgsList organizations for current admin
create_orgCreate a new organizationorgName
invite_to_orgInvite an admin to an orgorgId, email
list_org_membersList members of an orgorgId
create_api_keyCreate a tenant API key

Parameters

ParamTypeUsed byDescription
actionstring (enum)allOperation to perform
emailstringcreate_user, login, invite_to_orgUser or invitee email
namestringcreate_user, create_roleUser or role name
passwordstringcreate_user, update_password, loginPassword
userIdstringupdate_password, assign_role, revoke_roleUser ID
roleIdstringassign_role, revoke_roleRole ID
permissionsobjectcreate_roleRole permissions object
descriptionstringcreate_roleRole description
tenantSlugstringcreate_user, login, select_tenant, update_passwordTenant slug. select_tenant supports prefix matching — if no exact match, auto-selects when one prefix match is found.
notestringgenerate_invitationOptional note for the invitation
maxUsesnumbergenerate_invitationMax uses for the code
expiresAtstringgenerate_invitationExpiration date (ISO 8601)
orgNamestringcreate_orgOrganization display name
orgIdstringinvite_to_org, list_org_membersOrganization ID
orgRoleowner | memberinvite_to_orgRole to assign the invitee (default: member)
apiKeyNamestringcreate_api_keyOptional name for the new API key

create_api_key note: The full key is returned only once in the response — store it immediately. Subsequent calls return only the key prefix for identification.


fyso_views — Entity views

Manage filtered entity views with independent RBAC permissions.

ActionDescriptionRequired params
createCreate a new viewentitySlug, slug, name
listList all views
updateModify a viewslug
deleteRemove a viewslug

Parameters

ParamTypeUsed byDescription
actionstring (enum)allOperation to perform
entitySlugstringcreateEntity this view is based on
slugstringcreate, update, deleteView slug identifier
namestringcreate, updateDisplay name
descriptionstringcreate, updateView description
filterDslobjectcreate, updateFilter definition: { validate: [{ condition: 'field == value' }] }
isActivebooleanupdateEnable/disable the view

fyso_knowledge — Knowledge base

Search tenant knowledge base and Fyso platform documentation.

ActionDescriptionRequired params
searchSemantic search tenant knowledgequery
statsKnowledge base metrics
search_docsSearch Fyso platform docsquery

Parameters

ParamTypeUsed byDescription
actionstring (enum)allOperation to perform
querystringsearch, search_docsNatural language search query
limitnumbersearch, search_docsMax results (search: default 5, max 20; search_docs: default 5, max 10)
thresholdnumbersearchMinimum similarity 0-1 (default: 0.3)
document_idsstring[]searchFilter to specific document IDs
one_per_documentbooleansearchBest chunk per document only
metadata_filterobjectsearchMetadata filter (e.g. { tag: 'policy' })
topicstringsearch_docsTopic filter: api, entities, business-rules, deployment, billing, knowledge, mcp, rbac, views, flows, webhooks, scheduling

fyso_deploy — Static sites

Deploy static sites, manage custom domains, and generate CI/CD tokens.

ActionDescriptionRequired params
deployUpload and deploy sitesubdomain
listList active sites
deleteRemove a sitesubdomain
set_domainManage custom domainsubdomain
generate_tokenCI/CD deploy tokensubdomain

Parameters

ParamTypeUsed byDescription
actionstring (enum)allOperation to perform
subdomainstringdeploy, delete, set_domain, generate_tokenSite subdomain (e.g. my-app -> my-app-sites.fyso.dev)
pathstringdeployAbsolute path to build output directory
bundle_base64stringdeployBase64-encoded ZIP of site files (for remote MCP)
domainstringset_domainCustom domain (e.g. app.mycompany.com)
domain_actionadd | verify | status | removeset_domainDomain sub-action (default: add)
namestringgenerate_tokenToken name (e.g. GitHub Actions)
expires_in_daysnumbergenerate_tokenToken expiry in days (omit for no expiry)
package_jsonobjectgenerate_tokenpackage.json for framework auto-detection
frameworkstringgenerate_tokenOverride framework: astro, vite, next, nuxt, gatsby, hugo, default

fyso_meta — API, metadata, and secrets

API spec, client generation, metadata import/export, secrets, and usage metrics.

ActionDescriptionRequired params
api_specREST API OpenAPI spec
api_clientGenerate typed client code
exportExport tenant metadata
importImport metadatadata
usageBilling metrics
set_secretStore encrypted secretkey, value
delete_secretDelete a secretkey
feedbackReport feedback or bugfeedback_type, title

Parameters

ParamTypeUsed byDescription
actionstring (enum)allOperation to perform
entitiesstring[]api_spec, api_clientEntity names (omit for all)
includeExamplesbooleanapi_specInclude curl examples (default: true)
languagestringapi_clientTarget language (e.g. typescript, python)
frameworkstringapi_clientTarget framework (e.g. react, next)
formatstringapi_clientOutput format
datastringimportJSON string of metadata to import
tenantIdstringexport, importTenant ID/slug override
keystringset_secret, delete_secretSecret name
valuestringset_secretSecret value (encrypted at rest)
feedback_typebug | suggestion | questionfeedbackFeedback category
titlestringfeedbackShort summary
descriptionstringfeedbackDetailed description
contextstringfeedbackOptional additional context

fyso_agents — Agent management

Create, configure, run AI agents, and send messages between agents. Manage versions, runs, and templates.

ActionDescriptionRequired params
listList all agents
createCreate a new agentname
updateModify an agentid or slug
deleteDelete an agentslug
runExecute an agent with inputagent_slug, message
testRun agent in sandbox modeagent_slug, message
list_runsList agent run historyagent_id
list_versionsList prompt versionsagent_id
rollbackRevert to a previous versionagent_id, version
list_templatesList industry preset templates
from_templateCreate agent from templatetemplate_id, name
send_messageSend a message to another agentto_agent
inboxView an agent's inboxagent_name
read_messageFetch a message and mark it readmessage_id
archive_messageArchive a messagemessage_id
count_unreadCount pending messages for an agentagent_name

Parameters

ParamTypeUsed byDescription
actionstring (enum)allOperation to perform
idstringupdateAgent UUID (preferred over slug for update)
slugstringupdate, deleteAgent slug identifier
agent_slugstringrun, testAgent slug
agent_idstringlist_runs, list_versions, rollbackAgent UUID
namestringcreate, from_templateAgent display name
messagestringrun, testUser message input
versionnumberrollbackVersion number to restore
template_idstringfrom_templateTemplate identifier
session_idstringrun, list_runsSession ID to continue or filter by
memory_enabledbooleancreate, updateEnable cross-session memory extraction
knowledge_enabledbooleancreate, updateEnable RAG retrieval from tenant knowledge base
schedules_enabledbooleancreate, updateEnable scheduling tools (slots, bookings)
tools_scopeobjectcreate, updateEntity tools: { "entity": ["query", "create", "update"] }
system_promptstringcreate, updateAgent system prompt
fallback_modellm | message | silentcreate, updateBehavior when no deterministic rule matches
channelsobject[]create, updateChannel configurations (web, telegram, etc.)
Messaging params
to_agentstringsend_messageRecipient agent name or slug. Supports fuzzy matching: "cero" resolves to "cero-a3f2c1" if unique.
from_agentstringsend_messageSender name. Defaults to mcp-caller.
subjectstringsend_messageOptional subject line
payloadobjectsend_messageArbitrary JSON data (max 64 KB)
prioritynormal | high | urgentsend_messageDefault: normal
in_reply_tostringsend_messageUUID of parent message (for threading)
auto_runbooleansend_messageRun recipient agent automatically on delivery
agent_namestringinbox, count_unreadAgent whose inbox to access
message_idstringread_message, archive_messageMessage UUID
inbox_statuspending | read | allinboxFilter messages by status (default: pending)
inbox_limitnumberinboxMax messages (default 50, max 200)
inbox_offsetnumberinboxPagination offset

See Agent Messaging for the full guide.


fyso_ai — AI providers and calls

Configure AI providers, manage prompts, test calls, and view logs.

ActionDescriptionRequired params
configure_providerSet default AI provider configprovider, apiKey
list_providersList configured providers
add_providerAdd an additional providerprovider, apiKey
remove_providerRemove a providerproviderId
test_callTest a prompt against a providerprompt
call_logsView AI call history
debug_logGet debug payload for a callcallId
create_templateCreate a reusable prompt templatename, prompt
list_templatesList prompt templates
update_templateModify a prompt templatetemplateId
list_presetsList industry presets (taller, clinica, tienda)
install_presetInstall an industry preset with entities and agentpreset
rate_limit_statusCurrent AI rate limit status
cost_dashboardAI spend summary (weekly, monthly, projections)

Parameters

ParamTypeUsed byDescription
actionstring (enum)allOperation to perform
providerstringconfigure_provider, add_providerProvider type: openai, anthropic, or any OpenAI-compatible base URL
apiKeystringconfigure_provider, add_providerAPI key for the provider
providerIdstringremove_providerProvider configuration ID
modelstringconfigure_provider, add_provider, test_callModel name (e.g. gpt-4o, claude-3-5-sonnet-20241022)
promptstringtest_call, create_templatePrompt text
namestringcreate_templateTemplate name
templateIdstringupdate_templateTemplate ID
callIdstringdebug_logAI call ID (requires ai.debug tenant setting)
limitnumbercall_logsMax log entries
presetstringinstall_presetPreset name: taller, clinica, tienda
system_promptstringtest_callSystem prompt for test call
temperaturenumbertest_callTemperature 0–2
max_tokensnumbertest_callMax tokens 1–32000

fyso_welcome — Onboarding

An onboarding conversation tool. Given a businessType, it proposes a starter set of entities and fields suited to that business, and returns suggested next steps. Used by the Claude Code plugin on first connect.

ParamTypeRequiredDescription
businessTypestringYesBusiness category (e.g., freelancer, clinic, ecommerce, saas, nonprofit, other)

This tool does not accept an action parameter — it is a single-purpose tool, not a grouped router.


Integration management tools

These standalone tools manage the integration lifecycle (not grouped):

ToolDescriptionRequired params
list_integrationsList available integrations and status
install_integrationInstall an integrationslug
configure_integrationUpdate integration configslug, config
activate_integrationEnable integration toolsslug
test_integrationTest connectivityslug
uninstall_integrationRemove integrationslug
list_integration_logsView health logsslug

Active integrations inject tools into agent runners as integration:<slug>:<tool-slug>.


REST-only features

The following features are available via the REST API but are not exposed as MCP tools:

  • SSE Event StreamGET /api/v1/tenants/:slug/events/stream — real-time CRUD, rule, and agent message events. See SSE Event Stream.
  • External Agent IdentityPOST /api/v1/tenants/:slug/agents/register, POST /reconnect. See External Agent Identity.
  • Agent Messages (REST) — Send, inbox, read, archive, count. Also available via fyso_agents MCP actions. See Agent Messaging.
  • Organizations/api/orgs CRUD + members + invitations. Also available via fyso_auth MCP actions. See Organizations.
  • Channels — Agent channel management (Telegram, web widget). See Channels.
  • Botsregister_bot, identify_bot, list_bots, whoami_bot, revoke_bot. See Bot Identity.
  • Flowscreate_flow, list_flows, update_flow, delete_flow, toggle_flow
  • Webhookscreate_webhook, list_webhooks, delete_webhook
  • Documentsupload_document, list_documents, get_document, delete_document
  • PDFgenerate_pdf, create_pdf_template
  • Appspublish_app, unpublish_app, update_app