How tools expose one typed capability to agents, workflows, or MCP servers.
A tool owns one callable capability. It defines input, output, and execution.Tools give agents and workflows defined ways to act. The model can
choose a tool, but the tool owns the code that runs.
Tools can be local project files, remote integration tools, or MCP-exposed
capabilities. The caller chooses when to invoke them. The tool owns how the work
runs.Keep tools focused. A tool should do one thing, validate its input, and return a
clear result. If the operation grows into multiple stages, approvals, or retries,
move the coordination into a workflow.
Do not use a tool as a hidden workflow, long-running run, or large integration
layer. Use a workflow for process, a run for durable execution, and an
integration for reusable external service access.For implementation steps, see Tools.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Veryfront","colors":{"primary":"#282828","light":"#282828","dark":"#F1F0EA"},"logo":{"light":"https://mintcdn.com/veryfront/hEJNAGJq3vLA7nN0/assets/logo-dark.svg?fit=max\u0026auto=format\u0026n=hEJNAGJq3vLA7nN0\u0026q=85\u0026s=0499c19565ee454945dfa599bc850959","dark":"https://mintcdn.com/veryfront/hEJNAGJq3vLA7nN0/assets/logo-light.svg?fit=max\u0026auto=format\u0026n=hEJNAGJq3vLA7nN0\u0026q=85\u0026s=2b518be0c82df2623d660101adec3ffe","href":"https://veryfront.com"},"favicon":"https://mintcdn.com/veryfront/6cDnTgpf7aQNn7IJ/assets/icon-512.png?fit=max\u0026auto=format\u0026n=6cDnTgpf7aQNn7IJ\u0026q=85\u0026s=3051770753690844a36fcee114dfe54b","navbar":{"links":[{"href":"/","label":"Docs home"}]},"footer":{},"styling":{"eyebrows":"breadcrumbs","latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"veryfront","hasAudioNarration":false,"actualSubdomain":"veryfront","customDomains":["veryfront.com"],"gitSource":{"type":"github","owner":"veryfront","repo":"veryfront-docs","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae96afac6e063a9dfaa960a","collectionId":"1258b07e-73fc-4531-91e7-5f8c48dda55c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae96afac6e063a9dfaa960a"},"entitlements":{},"buildId":"6ae96afac6e063a9dfaa960a","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"Veryfront Cloud","count":1934},{"language":"default","tag":"MCP API","count":773},{"language":"default","tag":"Tools","count":771},{"language":"default","tag":"REST API","count":501},{"language":"default","tag":"Endpoints","count":483},{"language":"default","tag":"Integrations","count":443},{"language":"default","tag":"GraphQL API","count":406},{"language":"default","tag":"Operations","count":404},{"language":"default","tag":"APIs","count":245},{"language":"default","tag":"Integrations API","count":209}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"assets/custom.css","content":"@font-face{font-family:\"Gellix\";src:url(\"/docs/assets/fonts/gellix/gellix-semibold.woff2\") format(\"woff2\");font-display:swap;font-style:normal;font-weight:600}@font-face{font-family:\"Söhne\";src:url(\"/docs/assets/fonts/soehne/soehne-buch.woff2\") format(\"woff2\");font-display:swap;font-style:normal;font-weight:400}@font-face{font-family:\"Söhne\";src:url(\"/docs/assets/fonts/soehne/soehne-buch-kursiv.woff2\") format(\"woff2\");font-display:swap;font-style:italic;font-weight:400}@font-face{font-family:\"Söhne\";src:url(\"/docs/assets/fonts/soehne/soehne-kraftig.woff2\") format(\"woff2\");font-display:swap;font-style:normal;font-weight:500}@font-face{font-family:\"Söhne Mono\";src:url(\"/docs/assets/fonts/soehne/soehne-mono-buch.woff2\") format(\"woff2\");font-display:swap;font-style:normal;font-weight:400}@font-face{font-family:\"Söhne Mono\";src:url(\"/docs/assets/fonts/soehne/soehne-mono-kraftig.woff2\") format(\"woff2\");font-display:swap;font-style:normal;font-weight:500}:root{--background-light: 240 239 233 !important;--background-dark: 40 40 40 !important;--vf-font-mono: \"Söhne Mono\", ui-monospace, SFMono-Regular, \"SF Mono\", Menlo, Consolas, monospace;--vf-control-height: 38px;--vf-control-padding-x: 1.125rem;--vf-text-body: 1rem;--vf-text-code: 0.9375rem;--vf-text-ui: 0.875rem;--vf-background: #f0efe9;--vf-foreground: #010101;--vf-primary: #282828;--vf-secondary: #e8e6db;--vf-secondary-hover: #e1dfd0;--vf-accent: #e8e6db;--vf-muted: #f7f6f4;--vf-outline-border: #dcdad0}.dark{--vf-background: #282828;--vf-foreground: #f0efe9;--vf-primary: #f1f0ea;--vf-secondary: #434343;--vf-secondary-hover: #5e5e5e;--vf-accent: #434343;--vf-muted: #333333;--vf-outline-border: rgba(240, 239, 233, 0.18)}html,body{background:var(--vf-background);color:var(--vf-foreground);font-family:\"Söhne\", ui-sans-serif, system-ui, sans-serif;font-size:var(--vf-text-body);letter-spacing:0;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}b,strong,.font-semibold,.font-bold{font-weight:500!important}h1,h2,h3,h4,h5,h6,#page-title,.mdx-content h1,.mdx-content h2,.mdx-content h3,.mdx-content h4{color:var(--vf-foreground);font-weight:500!important;letter-spacing:0!important}.breadcrumb-list{margin-bottom:1.5rem!important}.breadcrumb-list,.breadcrumb-list *{color:var(--vf-foreground)!important}#page-title,.mdx-content h1{margin-bottom:1rem!important;font-family:\"Gellix\", \"Söhne\", ui-sans-serif, system-ui, sans-serif!important;font-feature-settings:\"ss16\" 1, \"kern\" 1, \"liga\" 1, \"calt\" 1!important;font-size:clamp(2rem, 1.625rem + 0.75vw, 2.5rem)!important;font-weight:500!important;line-height:1.08!important}.mdx-content h2{font-family:\"Söhne\", ui-sans-serif, system-ui, sans-serif!important;font-size:1.5rem!important;line-height:1.2!important}.mdx-content h3{font-family:\"Söhne\", ui-sans-serif, system-ui, sans-serif!important;font-size:1.25rem!important;line-height:1.3!important}.card h2.not-prose,[role=\"link\"].card h2.not-prose{font-family:\"Söhne\", ui-sans-serif, system-ui, sans-serif!important;font-size:1.125rem!important;font-weight:500!important;line-height:1.35!important}.card .not-prose,[role=\"link\"].card .not-prose{font-family:\"Söhne\", ui-sans-serif, system-ui, sans-serif!important}.mdx-content,.mdx-content p,.mdx-content li,.mdx-content td,.mdx-content th{font-family:\"Söhne\", ui-sans-serif, system-ui, sans-serif!important;font-size:var(--vf-text-body);letter-spacing:0}.prose,#content-area header p,#content-area .prose p,#content-area .prose li,#content-area .prose td,#content-area .prose th{font-family:\"Söhne\", ui-sans-serif, system-ui, sans-serif!important;font-size:var(--vf-text-body)!important;letter-spacing:0!important}#content-area .prose table th,.mdx-content table th{font-weight:500!important}#content-area .prose table :is(th,td),.mdx-content table :is(th,td){padding-top:0.75rem!important;padding-bottom:0.75rem!important}#content-area .prose table :is(th,td)+:is(th,td),.mdx-content table :is(th,td)+:is(th,td){padding-left:3rem!important}@media (max-width: 640px){#content-area .prose table :is(th,td)+:is(th,td),.mdx-content table :is(th,td)+:is(th,td){padding-left:1.75rem!important}}@layer base{#content-area .mdx-content :is(a.link,.api-operation-meta a),#content-area .mdx-content :is(a.link,.api-operation-meta a):hover{border-bottom:0!important;color:inherit!important;font-weight:400!important;text-decoration-line:underline!important;text-decoration-thickness:1px!important;text-decoration-color:color-mix(in srgb, currentColor 55%, transparent)!important;text-underline-offset:0.2em!important}#content-area .mdx-content :is(a.link,.api-operation-meta a):hover{text-decoration-color:currentColor!important}#content-area .mdx-content :is(a.link,.api-operation-meta a):focus-visible{outline:2px solid var(--vf-foreground);outline-offset:3px;border-radius:2px}}#pagination{gap:0.75rem}#pagination a,.api-request-playground button,.tryit-button{display:inline-flex!important;min-height:var(--vf-control-height)!important;line-height:1.25!important;align-items:center!important;justify-content:center!important;gap:0.625rem!important;padding:0 var(--vf-control-padding-x)!important;border-radius:9999px;background:transparent!important;border:0!important;color:var(--vf-foreground)!important;font-size:var(--vf-text-body)!important;font-weight:400!important;text-decoration:none!important;transition:background-color 0.15s ease-in, color 0.15s ease-in, border-color 0.15s ease-in}#pagination a:hover{background:var(--vf-accent)!important;color:var(--vf-foreground)!important}#pagination a>*+*{margin-left:0!important}#pagination a *,#pagination a:hover *{color:inherit!important;font-size:inherit!important;font-weight:inherit!important}#pagination a svg,#pagination a:hover svg{stroke:currentColor!important;stroke-width:1.25!important}#pagination a svg path,#pagination a:hover svg path{stroke-width:1.25!important}.mdx-content p,.mdx-content li,#content-area header p,#content-area .prose p,#content-area .prose li{line-height:1.6!important}#sidebar-content,#table-of-contents,nav{font-family:\"Söhne\", ui-sans-serif, system-ui, sans-serif!important;letter-spacing:0}#sidebar-content a,#table-of-contents a{font-size:0.875rem!important;line-height:1.35!important}code,pre,kbd,samp,.font-mono,[data-component-part=\"field-name\"]{font-family:var(--vf-font-mono)!important}:is(.code-block,.code-group){border:1px solid var(--vf-outline-border)!important;border-radius:12px!important;background:var(--vf-secondary)!important;overflow:hidden!important;padding:0!important}.eyebrow{color:var(--vf-foreground)!important}.dark .eyebrow{color:var(--vf-foreground)!important}.docs-home-platform-map{display:block;width:100%;height:auto;margin:1.5rem 0 2rem;border-radius:1.25rem}.product-overview-cover{display:block;width:100%;height:auto;margin:1.25rem 0 2rem!important;border-radius:8px}.product-overview-cover--dark{display:none}.dark .product-overview-cover--light{display:none}.dark .product-overview-cover--dark{display:block}html[data-current-path=\"/\"] .card:hover,html[data-current-path=\"/docs\"] .card:hover,html[data-path=\"/\"] .card:hover,html[data-path=\"/docs\"] .card:hover,body[data-path=\"/\"] .card:hover,body[data-path=\"/docs\"] .card:hover{border-color:#E8E6DB!important;outline-color:#E8E6DB!important;--tw-ring-color: #E8E6DB !important;box-shadow:0 0 0 1px #E8E6DB!important}#sidebar-content a:hover{background:var(--vf-accent)!important;color:var(--vf-foreground)!important}#sidebar-content a:is([aria-current=\"page\"],[data-active=\"true\"],.active),#sidebar-content a:is([aria-current=\"page\"],[data-active=\"true\"],.active):hover{background:#fff!important;color:var(--vf-foreground)!important}.dark #sidebar-content a:is([aria-current=\"page\"],[data-active=\"true\"],.active),.dark #sidebar-content a:is([aria-current=\"page\"],[data-active=\"true\"],.active):hover,.dark #sidebar-content a:hover{background:var(--vf-accent)!important;color:var(--vf-foreground)!important}#content-area:has(.product-hero) #page-title{display:none!important}.mdx-content:has(>.product-hero){margin-top:0!important}.product-hero img{margin:0!important}[role=\"menu\"]>a[href=\"/\"],[role=\"menu\"]>a[href=\"/docs\"]{display:none!important}.dark [role=\"menu\"] a,.dark [role=\"menu\"] a *,.dark [role=\"menu\"] [role=\"menuitem\"],.dark [role=\"menu\"] [role=\"menuitem\"] *{color:var(--vf-foreground)!important;opacity:1!important}.dark [role=\"menu\"] a[aria-current=\"page\"],.dark [role=\"menu\"] a[data-active=\"true\"],.dark [role=\"menu\"] [role=\"menuitem\"][aria-selected=\"true\"],.dark [role=\"menu\"] [role=\"menuitem\"][data-selected=\"true\"]{background:var(--vf-accent)!important}button[aria-label=\"More actions\"]{display:none!important}.sidebar-group>li:has(>a[href=\"/\"]),.sidebar-group>li:has(>a[href=\"/docs\"]){display:none!important}html[data-current-path=\"/\"] #sidebar-content,html[data-current-path=\"/\"] #table-of-contents,html[data-current-path=\"/docs\"] #sidebar-content,html[data-current-path=\"/docs\"] #table-of-contents,html[data-path=\"/\"] #sidebar-content,html[data-path=\"/\"] #table-of-contents,html[data-path=\"/docs\"] #sidebar-content,html[data-path=\"/docs\"] #table-of-contents,body[data-path=\"/\"] #sidebar-content,body[data-path=\"/\"] #table-of-contents,body[data-path=\"/docs\"] #sidebar-content,body[data-path=\"/docs\"] #table-of-contents{visibility:hidden!important}footer a[href*=\"mintlify.com\"]{display:none!important}.cloud-architecture-diagram{display:flex;flex-direction:column;gap:1rem;margin:1.5rem 0 2rem}.cloud-architecture-layer{display:block;width:100%;border:1px solid rgba(148, 163, 184, 0.45);border-radius:0.75rem;padding:1rem;background:rgba(15, 23, 42, 0.03);color:inherit;text-decoration:none;transition:background 0.15s ease, border-color 0.15s ease}.cloud-architecture-layer:hover{background:rgba(15, 23, 42, 0.05);border-color:rgba(14, 165, 233, 0.5)}.dark .cloud-architecture-layer{background:rgba(255, 255, 255, 0.04);border-color:rgba(209, 213, 219, 0.35)}.dark .cloud-architecture-layer:hover{background:rgba(255, 255, 255, 0.06);border-color:rgba(56, 189, 248, 0.55)}.cloud-architecture-title{margin-bottom:0.75rem;font-weight:500;color:#030712}.dark .cloud-architecture-title{color:#f9fafb}.cloud-architecture-note{margin-bottom:0.75rem}.cloud-architecture-grid+.cloud-architecture-note{margin-top:0.75rem}.cloud-architecture-grid{display:grid;gap:0.75rem}.cloud-architecture-service-groups{display:grid;gap:0.75rem}.cloud-architecture-service-group{border:1px solid rgba(148, 163, 184, 0.45);border-radius:0.75rem;padding:0.85rem;background:rgba(255, 255, 255, 0.55)}.dark .cloud-architecture-service-group{border-color:rgba(209, 213, 219, 0.28);background:rgba(15, 23, 42, 0.42)}.cloud-architecture-service-title{margin-bottom:0.75rem;color:#0f172a}.dark .cloud-architecture-service-title{color:#e5eefb}.cloud-architecture-grid.two{grid-template-columns:repeat(2, minmax(0, 1fr))}.cloud-architecture-grid.three{grid-template-columns:repeat(3, minmax(0, 1fr))}.cloud-architecture-grid.five{grid-template-columns:repeat(2, minmax(0, 1fr))}.cloud-architecture-grid>div{border:1px solid rgba(148, 163, 184, 0.55);border-radius:0.5rem;padding:0.7rem 0.75rem;text-align:center;color:#111827;background:rgba(255, 255, 255, 0.72)}.dark .cloud-architecture-grid>div{color:#f3f4f6;background:rgba(3, 7, 18, 0.55);border-color:rgba(209, 213, 219, 0.35)}@media (max-width: 900px){.cloud-architecture-grid.two,.cloud-architecture-grid.three,.cloud-architecture-grid.five{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media (max-width: 520px){.cloud-architecture-grid.two,.cloud-architecture-grid.three,.cloud-architecture-grid.five{grid-template-columns:1fr}}.cloud-overview-hero{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin:1.5rem 0 2rem;align-items:start}.cloud-overview-diagram{display:flex;flex-direction:column;gap:0}.cloud-overview-apps{display:grid;grid-template-columns:repeat(3, 1fr);gap:0.5rem;margin-bottom:0.5rem}.cloud-overview-apps>div{border:1px solid rgba(148, 163, 184, 0.55);border-radius:0.5rem;padding:0.5rem;text-align:center;font-size:0.85rem;color:#111827;background:rgba(255, 255, 255, 0.72)}.dark .cloud-overview-apps>div{color:#f3f4f6;background:rgba(3, 7, 18, 0.55);border-color:rgba(209, 213, 219, 0.35)}.cloud-overview-platform{border:1px solid rgba(148, 163, 184, 0.45);border-radius:0.75rem;padding:2.5rem 1rem;text-align:center;font-weight:500;color:#030712;background:rgba(15, 23, 42, 0.03);margin-bottom:0.5rem}.dark .cloud-overview-platform{color:#f9fafb;background:rgba(255, 255, 255, 0.04);border-color:rgba(209, 213, 219, 0.35)}.cloud-overview-infra{border:1px solid rgba(148, 163, 184, 0.45);border-radius:0.75rem;padding:0.75rem 1rem;text-align:center;font-size:0.85rem;color:#334155;background:rgba(15, 23, 42, 0.03)}.dark .cloud-overview-infra{color:#cbd5e1;background:rgba(255, 255, 255, 0.04);border-color:rgba(209, 213, 219, 0.35)}.cloud-overview-requirements p{margin-bottom:0.75rem;font-size:0.9rem;line-height:1.5}.cloud-overview-requirements p:last-child{margin-bottom:0}@media (max-width: 700px){.cloud-overview-hero{grid-template-columns:1fr}}.conversation-api-capability-groups{grid-template-columns:repeat(2, minmax(0, 1fr))}@media (max-width: 720px){.conversation-api-capability-groups{grid-template-columns:1fr}}img.integration-icon,img.integration-icon-sm{display:inline-block;border-radius:6px;vertical-align:middle;margin:0}img.integration-icon-sm{margin-right:4px}.dark img.integration-icon,.dark img.integration-icon-sm{background:#fff;padding:2px;box-sizing:border-box}#content-area .prose :not(pre)>code,.mdx-content :not(pre)>code{font-size:var(--vf-text-code)!important;color:inherit!important;font-variant-ligatures:none;font-weight:400!important;letter-spacing:-0.015em!important;padding:0!important;background:transparent!important;line-height:inherit!important}:is(.code-block,.code-group) :is(pre,code,.code-block){border-radius:0!important;border:0!important}:is(.code-block,.code-group) pre{margin:0!important;background:transparent!important}:is(.code-block,.code-group) [data-component-part=\"code-block-root\"]{background:var(--vf-background)!important;border-radius:0!important}:is(.code-block,.code-group) [data-component-part=\"scroll-area-viewport\"]{border-radius:0!important}[data-component-part=\"code-block-header\"],[data-component-part=\"code-group-tab-bar\"]{background:var(--vf-accent)!important;min-height:2.75rem}[data-component-part=\"code-group-tab-bar\"]>div,[data-component-part=\"code-group-tab-bar\"] button[aria-label=\"Select language\"]{font-size:var(--vf-text-ui)!important}.code-block-fade-overlay{--fade-color-light: var(--vf-background) !important;--fade-color-dark: var(--vf-background) !important;border-radius:0!important}[data-floating-buttons] .code-block-copy-button button{background:var(--vf-background)!important}.mdx-content .api-request-playground{background:var(--vf-background)!important;border-color:var(--vf-outline-border)!important;color:var(--vf-foreground)!important;border-radius:12px!important}.mdx-content .api-request-playground :is(label,div,input,textarea,pre,code){color:var(--vf-foreground)!important;border-color:var(--vf-outline-border)!important}.mdx-content .api-request-playground :is(input,textarea){background:var(--vf-muted)!important;font-size:var(--vf-text-body)!important;line-height:1.5!important}.mdx-content .api-request-playground button{background:var(--vf-secondary)!important;color:var(--vf-foreground)!important;border:0!important}.mdx-content .api-request-playground button:hover{background:var(--vf-secondary-hover)!important}.mdx-content .api-request-playground div:has(>pre){background:var(--vf-accent)!important;border-radius:8px!important;overflow:hidden}.mdx-content .api-request-playground div:has(>pre)>div{background:transparent!important}.mdx-content .api-request-playground pre{margin:0!important;background:var(--vf-accent)!important;border-radius:0!important}.mdx-content .api-request-playground pre span{color:inherit!important}#pagination a:focus-visible,.mdx-content .api-request-playground :is(button,input,textarea):focus-visible{outline:2px solid var(--vf-foreground)!important;outline-offset:3px}.api-operation-meta{display:none}.api-operation-signature{overflow-wrap:anywhere;padding:0.875rem 1rem;background:transparent;border:1px solid var(--vf-outline-border);border-radius:8px}.api-operation-signature p{margin:0!important}.api-operation-signature code{background:transparent!important;padding:0!important}.api-request-playground{padding:1rem;border:1px solid var(--vf-outline-border);margin:1rem 0}.api-request-playground>label{display:block;margin:1rem 0 0.5rem;font-weight:500}.api-request-playground>label:first-child{margin-top:0}.api-request-playground :is(input,textarea){display:block;width:100%;box-sizing:border-box;padding:0.75rem;border:1px solid var(--vf-outline-border);border-radius:6px}.api-request-playground textarea{font-family:var(--vf-font-mono);resize:vertical}.api-request-playground button{border-radius:9999px!important;cursor:pointer}.api-request-playground button:disabled{opacity:0.6;cursor:not-allowed}.api-request-playground>.api-request-confirmation{display:flex;align-items:flex-start;gap:0.625rem;font-weight:400}.api-request-playground .api-request-confirmation input[type=\"checkbox\"]{width:1rem;height:1rem;margin-top:0.25rem;padding:0;flex:none;accent-color:var(--vf-foreground)}.api-request-playground .api-request-help{display:flex;align-items:center;flex-wrap:wrap;gap:0.5rem;font-size:0.875rem;margin-top:0.5rem}.api-request-playground .api-request-submit{margin-top:1rem}.api-request-playground .api-request-status:empty{display:none}.api-request-response-heading{display:flex;justify-content:space-between;align-items:center;padding:0.75rem 1rem;border-bottom:1px solid var(--vf-outline-border)}.api-request-playground pre{padding:1rem;max-height:24rem;overflow:auto;font-size:0.875rem;line-height:1.6;white-space:pre}@layer base{:is(.code-block,.code-group) [data-component-part=\"code-block-root\"]{border-radius:0!important;background:var(--vf-background)!important}}.api-try-operation{margin:1.5rem 0;border:1px solid var(--vf-outline-border);border-radius:10px;padding:1rem}.api-try-operation>summary{cursor:pointer;font-weight:500}.api-try-operation>p{margin:1rem 0;font-size:0.875rem}.api-try-operation>.api-request-playground{margin-bottom:0}.code-group [data-component-part=\"code-group-tab-bar\"]{background:var(--vf-secondary)!important;padding:0 0.75rem!important;border-bottom:1px solid var(--vf-outline-border)!important}.code-group [role=\"tablist\"]{width:fit-content;gap:1.25rem!important;padding:0!important;background:transparent!important;border-radius:0!important}.code-group [role=\"tab\"]{margin:0!important;padding:0.625rem 0!important;border:0!important;border-bottom:1px solid transparent!important;border-radius:0!important;color:color-mix(in srgb, var(--vf-foreground) 68%, var(--vf-background))!important;font-size:var(--vf-text-ui)!important;line-height:1.5!important;font-weight:400!important;background:transparent!important;box-shadow:none!important}.code-group [role=\"tab\"][aria-selected=\"true\"]{color:var(--vf-foreground)!important;border-bottom-color:var(--vf-foreground)!important;font-weight:500!important}.code-group [role=\"tab\"]:hover{color:var(--vf-foreground)!important}.code-group [role=\"tab\"]:focus-visible{outline:2px solid var(--vf-foreground)!important;outline-offset:-2px}.code-group [role=\"tab\"]::after{display:none!important}.code-group [role=\"tab\"]>.absolute{display:none!important}.code-group [role=\"tab\"]>div:not(.absolute){background:transparent!important;padding:0!important;outline:none!important}.api-try-operation>.api-request-playground{border:0!important;padding:0;background:transparent!important}@layer base{#content-area .mdx-content [data-component-part=\"code-block-root\"]{max-height:32rem!important}#content-area .mdx-content [data-component-part=\"code-block-root\"] [data-component-part=\"scroll-area-viewport\"]{max-height:32rem!important;overflow-y:auto!important}}#content-area .mdx-content .cloud-entry-links .card{background:transparent!important;border:1px solid var(--vf-outline-border)!important;border-radius:12px!important;box-shadow:none!important}#content-area .mdx-content .cloud-entry-links .card:hover{background:transparent!important;border-color:var(--vf-outline-border)!important}#content-area .mdx-content .cloud-entry-links .card:focus-visible{outline:2px solid var(--vf-foreground)!important;outline-offset:3px}@layer base{#content-area .mdx-content .cloud-entry-links .card:hover{border-color:var(--vf-outline-border)!important}}#content-area .mdx-content .cloud-entry-links .card::after{content:\"\";position:absolute;top:1rem;right:1rem;width:1rem;height:1rem;background:var(--vf-foreground);mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14m-6-6 6 6-6 6' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\") center / contain no-repeat;opacity:0;transform:translateX(-2px);transition:opacity 120ms ease, transform 120ms ease;pointer-events:none}#content-area .mdx-content .cloud-entry-links .card:hover::after,#content-area .mdx-content .cloud-entry-links .card:focus-within::after{opacity:1;transform:translateX(0)}@media (prefers-reduced-motion: reduce){#content-area .mdx-content .cloud-entry-links .card::after{transition:none;transform:none}}:is(.code-block,.code-group) pre,#content-area .mdx-content .api-request-playground :is(textarea,pre){font-size:var(--vf-text-code)!important;line-height:1.6!important}#content-area .mdx-content [data-component-part=\"code-block-header\"],#content-area .code-group [role=\"tab\"]{font-size:var(--vf-text-ui)!important}#content-area .mdx-content :is(h1,h2,h3,h4) code{font-size:1em!important}.tryit-button{background:var(--vf-secondary)!important;color:var(--vf-foreground)!important;border:1px solid var(--vf-outline-border)!important;border-radius:9999px!important;font-size:var(--vf-text-ui)!important}.tryit-button:hover{background:var(--vf-secondary-hover)!important;opacity:1!important}.tryit-button [data-component-part=\"icon-svg\"]{background-color:currentColor!important}.tryit-button:focus-visible{outline:2px solid var(--vf-foreground);outline-offset:2px}[data-component-part=\"field-name\"]{color:var(--vf-foreground)!important;font-size:var(--vf-text-code)!important}.reference-identifier{white-space:nowrap}@layer base{#pagination a{background:transparent!important;border:1px solid var(--vf-outline-border)!important}#pagination a:hover{background:var(--vf-accent)!important}}#content-area:has(#event-types):has(#model-call):has(#billing) .prose table{table-layout:fixed!important;width:100%!important;min-width:0!important}#content-area:has(#event-types):has(#model-call):has(#billing) .prose table :is(th,td){width:auto!important;min-width:0!important;max-width:none!important;padding:0.65rem 0.75rem!important;text-align:left!important;vertical-align:top!important;white-space:normal!important;overflow-wrap:anywhere!important}#content-area:has(#event-types):has(#model-call):has(#billing) .prose table :is(th,td):first-child{padding-left:0!important}#content-area:has(#event-types):has(#model-call):has(#billing) .prose table code{white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important}#content-area:has(#event-types):has(#model-call):has(#billing) .prose table :is(th,td):nth-child(1){width:55%!important}#content-area:has(#event-types):has(#model-call):has(#billing) .prose table :is(th,td):nth-child(2){width:45%!important}#table-of-contents :is(a[aria-current=\"location\"],li[data-active]>a),#table-of-contents-content :is(a[aria-current=\"location\"],li[data-active]>a){color:var(--vf-foreground)!important;font-weight:600}"}],"page":{"pagePath":"code/concepts/tool","slug":"/code/concepts/tool","pageMetadata":{"title":"Tool","description":"How tools expose one typed capability to agents, workflows, or MCP servers.","order":22,"href":"/code/concepts/tool"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"How tools expose one typed capability to agents, workflows, or MCP servers.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,li:`li`,p:`p`,ul:`ul`,..._provideComponents(),...props.components},{Heading}=_components;if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`A tool owns one callable capability. It defines input, output, and execution.`}),`\n`,_jsx(_components.p,{children:`Tools give agents and workflows defined ways to act. The model can\nchoose a tool, but the tool owns the code that runs.`}),`\n`,_jsx(Heading,{level:`2`,id:`characteristics`,children:`Characteristics`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Typed input describes what the caller must provide.`}),`\n`,_jsx(_components.li,{children:`Execution performs one operation.`}),`\n`,_jsx(_components.li,{children:`Output returns a structured result the caller can use.`}),`\n`,_jsx(_components.li,{children:`Errors describe why the operation could not complete.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`boundary`,children:`Boundary`}),`\n`,_jsx(_components.p,{children:`Tools can be local project files, remote integration tools, or MCP-exposed\ncapabilities. The caller chooses when to invoke them. The tool owns how the work\nruns.`}),`\n`,_jsx(_components.p,{children:`Keep tools focused. A tool should do one thing, validate its input, and return a\nclear result. If the operation grows into multiple stages, approvals, or retries,\nmove the coordination into a workflow.`}),`\n`,_jsx(Heading,{level:`2`,id:`wrong-fit`,children:`Wrong fit`}),`\n`,_jsx(_components.p,{children:`Do not use a tool as a hidden workflow, long-running run, or large integration\nlayer. Use a workflow for process, a run for durable execution, and an\nintegration for reusable external service access.`}),`\n`,_jsxs(_components.p,{children:[`For implementation steps, see `,_jsx(_components.a,{href:`/code/guides/tools`,children:`Tools`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Tool","description":"How tools expose one typed capability to agents, workflows, or MCP servers.","order":22,"href":"/code/concepts/tool"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Characteristics","slug":"characteristics","depth":2,"children":[]},{"title":"Boundary","slug":"boundary","depth":2,"children":[]},{"title":"Wrong fit","slug":"wrong-fit","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/veryfront/1f199d6ae72e7de5/breadcrumbs.js"],"subdomain":"veryfront","siteName":"Veryfront","title":"Tool - Veryfront","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-13T15:12:57.595Z","originalFileLocation":"code/concepts/tool.md"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"How tools expose one typed capability to agents, workflows, or MCP servers.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Veryfront\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/veryfront/ta4n8Ia6Vf67_Ws9/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/veryfront/ta4n8Ia6Vf67_Ws9/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/veryfront/ta4n8Ia6Vf67_Ws9/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/veryfront/ta4n8Ia6Vf67_Ws9/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/veryfront/ta4n8Ia6Vf67_Ws9/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/veryfront/ta4n8Ia6Vf67_Ws9/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/veryfront/ta4n8Ia6Vf67_Ws9/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/veryfront/ta4n8Ia6Vf67_Ws9/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/veryfront/ta4n8Ia6Vf67_Ws9/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Tool - Veryfront\">\u003cmeta data-mint-head property=\"og:description\" content=\"How tools expose one typed capability to agents, workflows, or MCP servers.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Veryfront\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://veryfront.com/docs/code/concepts/tool\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://veryfront.mintlify.site/docs/_mintlify/api/og/v2?division=Framework+primitives\u0026amp;title=Tool\u0026amp;description=How+tools+expose+one+typed+capability+to+agents%2C+workflows%2C+or+MCP+servers.\u0026amp;theme=1a89ea3c5f627eec8ad725a6\u0026amp;signature=2d136f60266a63a03b28e5a2b9695c60419d6b28d709d67c71a36103ab5c6c32\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Tool - Veryfront\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"How tools expose one typed capability to agents, workflows, or MCP servers.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://veryfront.mintlify.site/docs/_mintlify/api/og/v2?division=Framework+primitives\u0026amp;title=Tool\u0026amp;description=How+tools+expose+one+typed+capability+to+agents%2C+workflows%2C+or+MCP+servers.\u0026amp;theme=1a89ea3c5f627eec8ad725a6\u0026amp;signature=2d136f60266a63a03b28e5a2b9695c60419d6b28d709d67c71a36103ab5c6c32\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/veryfront/ta4n8Ia6Vf67_Ws9/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Veryfront\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#282828\">\u003clink data-mint-head rel=\"canonical\" href=\"https://veryfront.com/docs/code/concepts/tool\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/code/concepts/tool.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://veryfront.com/#organization\",\"name\":\"Veryfront\",\"url\":\"https://veryfront.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/veryfront/hEJNAGJq3vLA7nN0/assets/logo-dark.svg?fit=max\u0026auto=format\u0026n=hEJNAGJq3vLA7nN0\u0026q=85\u0026s=0499c19565ee454945dfa599bc850959\"}},{\"@type\":\"WebSite\",\"@id\":\"https://veryfront.com/docs#website\",\"name\":\"Veryfront\",\"url\":\"https://veryfront.com/docs\",\"publisher\":{\"@id\":\"https://veryfront.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://veryfront.com/docs/code/concepts/tool#webpage\",\"url\":\"https://veryfront.com/docs/code/concepts/tool\",\"name\":\"Tool\",\"description\":\"How tools expose one typed capability to agents, workflows, or MCP servers.\",\"dateModified\":\"2026-08-13T15:12:57.595Z\",\"isPartOf\":{\"@id\":\"https://veryfront.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://veryfront.com/docs/code/concepts/tool#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://veryfront.com/docs/code/concepts/tool#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Concepts\",\"item\":\"https://veryfront.com/docs/code/concepts/index\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Framework primitives\",\"item\":\"https://veryfront.com/docs/code/concepts/framework-primitives\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Tool\",\"item\":\"https://veryfront.com/docs/code/concepts/tool\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://veryfront.com/docs/code/concepts/tool#article\",\"headline\":\"Tool\",\"name\":\"Tool\",\"description\":\"How tools expose one typed capability to agents, workflows, or MCP servers.\",\"url\":\"https://veryfront.com/docs/code/concepts/tool\",\"mainEntityOfPage\":{\"@id\":\"https://veryfront.com/docs/code/concepts/tool#webpage\"},\"dateModified\":\"2026-08-13T15:12:57.595Z\",\"publisher\":{\"@id\":\"https://veryfront.com/#organization\"},\"isPartOf\":{\"@id\":\"https://veryfront.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Veryfront\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Veryfront","nav":{"global":null,"products":[{"product":"Select Product","pages":[{"title":"Select Product","href":""}]},{"product":"Veryfront Code","pages":[{"title":"Veryfront Code","sidebarTitle":"Start here","href":"/code"},{"group":"Getting Started","pages":[{"title":"Getting started","sidebarTitle":"Overview","href":"/code/getting-started/index"},{"title":"Local quickstart","href":"/code/getting-started/quickstart"},{"title":"Cloud quickstart","href":"/code/getting-started/cloud-quickstart"},{"title":"Installation","href":"/code/getting-started/installation"},{"title":"Create project","href":"/code/getting-started/create-project"},{"title":"Create agent","href":"/code/getting-started/create-agent"},{"title":"Create API","href":"/code/getting-started/create-api"},{"title":"Create frontend","href":"/code/getting-started/create-frontend"},{"title":"Deploy with Veryfront Cloud","href":"/code/getting-started/deploy-project"}]},{"group":"Concepts","pages":[{"title":"Concepts","sidebarTitle":"Overview","href":"/code/concepts/index"},{"title":"Veryfront Code","href":"/code/concepts/framework-overview"},{"group":"Framework primitives","pages":[{"title":"Framework primitives","href":"/code/concepts/framework-primitives"},{"title":"App","href":"/code/concepts/app"},{"title":"Agent","description":"How agents own model reasoning, messages, tools, memory, and streamed output.","href":"/code/concepts/agent"},{"title":"Tool","href":"/code/concepts/tool"},{"title":"Skill","description":"How skills package reusable agent instructions, references, scripts, and assets.","href":"/code/concepts/skill"},{"title":"Prompt","href":"/code/concepts/prompt"},{"title":"Resource","href":"/code/concepts/resource"},{"title":"Eval","href":"/code/concepts/eval"},{"title":"Task","href":"/code/concepts/task"},{"title":"Workflow","href":"/code/concepts/workflow"},{"title":"Run","href":"/code/concepts/run"},{"title":"Schedule","href":"/code/concepts/schedule"},{"title":"Integration","href":"/code/concepts/integration"},{"title":"Salesforce integration","href":"/code/concepts/salesforce-integration"},{"title":"MCP server","href":"/code/concepts/mcp-server"},{"title":"Sandbox","href":"/code/concepts/sandbox"}]},{"title":"Framework conventions","href":"/code/concepts/framework-conventions"},{"title":"Framework extensions","href":"/code/concepts/framework-extensions"}]},{"group":"Guides","pages":[{"title":"Guides","sidebarTitle":"Overview","href":"/code/guides/index"},{"group":"Start a project","pages":[{"title":"Project structure","href":"/code/guides/project-structure"},{"title":"Configuration","href":"/code/guides/configuration"},{"title":"Choose a primitive","href":"/code/guides/choose-a-primitive"}]},{"group":"Build routes","pages":[{"title":"Pages and routing","href":"/code/guides/pages-and-routing"},{"title":"Data fetching","href":"/code/guides/data-fetching"},{"title":"API routes","href":"/code/guides/api-routes"},{"title":"Middleware","href":"/code/guides/middleware"},{"title":"Application authentication","href":"/code/guides/application-auth"},{"title":"Head and SEO","href":"/code/guides/head-and-seo"}]},{"group":"Add AI behavior","pages":[{"title":"Agents","href":"/code/guides/agents"},{"title":"Providers","href":"/code/guides/providers"},{"title":"Tools","href":"/code/guides/tools"},{"title":"Evals","href":"/code/guides/evals"},{"title":"Memory and streaming","href":"/code/guides/memory-and-streaming"},{"title":"Build a RAG app","href":"/code/guides/build-a-rag-app"},{"title":"Multi-agent","href":"/code/guides/multi-agent"},{"title":"Skills","href":"/code/guides/skills"}]},{"group":"Build chat","pages":[{"title":"Build a chat UI","href":"/code/guides/chat-ui"},{"title":"Chat hooks","href":"/code/guides/chat-hooks"}]},{"group":"Run background work","pages":[{"title":"Tasks","href":"/code/guides/tasks"},{"title":"Workflows","href":"/code/guides/workflows"},{"title":"Workflows: loops, blob storage, React hooks","href":"/code/guides/workflows-advanced"},{"title":"CLI-first knowledge ingestion","href":"/code/guides/cli-knowledge-ingestion"}]},{"group":"Connect external systems","pages":[{"title":"OAuth","href":"/code/guides/oauth"},{"title":"Integrations","href":"/code/guides/integrations"},{"group":"Integration setup","pages":[{"title":"Set up GitHub","href":"/code/guides/integrations/github"},{"title":"Set up Jira service-account access","href":"/code/guides/integrations/jira"},{"title":"Set up Salesforce","href":"/code/guides/integrations/salesforce"}]},{"title":"MCP server","href":"/code/guides/mcp-server"},{"title":"Coding agents","href":"/code/guides/coding-agents"},{"title":"Sandbox","href":"/code/guides/sandbox"}]},{"group":"Deploy and extend","pages":[{"title":"Self-host Veryfront Code","href":"/code/guides/self-hosting"},{"title":"Manage Cloud deployments","href":"/code/guides/deploying"},{"title":"Manage Cloud environment access","href":"/code/guides/cloud-environment-access"},{"title":"Deploy from CI","href":"/code/guides/deploy-from-ci"},{"title":"Move Studio changes into Git","href":"/code/guides/move-studio-changes-to-git"},{"title":"Agent service runtime","href":"/code/guides/agent-service-runtime"},{"title":"Extensions","href":"/code/guides/extensions"},{"title":"Author extensions","href":"/code/guides/extension-authoring"}]},{"group":"Troubleshoot","pages":[{"title":"Error reference","href":"/code/guides/errors"}]}]},{"group":"API Reference","pages":[{"title":"API reference","sidebarTitle":"Overview","href":"/code/api-reference/index"},{"title":"veryfront","href":"/code/api-reference/veryfront/index"},{"title":"veryfront/index.client","href":"/code/api-reference/veryfront/index.client"},{"title":"veryfront/agent","href":"/code/api-reference/veryfront/agent"},{"title":"veryfront/chat","href":"/code/api-reference/veryfront/chat"},{"title":"veryfront/cli","href":"/code/api-reference/veryfront/cli"},{"title":"veryfront/context","href":"/code/api-reference/veryfront/context"},{"title":"veryfront/embedding","href":"/code/api-reference/veryfront/embedding"},{"title":"veryfront/errors","href":"/code/api-reference/veryfront/errors"},{"title":"veryfront/eval","href":"/code/api-reference/veryfront/eval"},{"title":"veryfront/extensions","href":"/code/api-reference/veryfront/extensions"},{"title":"veryfront/fonts","href":"/code/api-reference/veryfront/fonts"},{"title":"veryfront/fs","href":"/code/api-reference/veryfront/fs"},{"title":"veryfront/head","href":"/code/api-reference/veryfront/head"},{"title":"veryfront/integrations","href":"/code/api-reference/veryfront/integrations"},{"title":"veryfront/knowledge","href":"/code/api-reference/veryfront/knowledge"},{"title":"veryfront/llm","href":"/code/api-reference/veryfront/llm"},{"title":"veryfront/markdown","href":"/code/api-reference/veryfront/markdown"},{"title":"veryfront/mcp","href":"/code/api-reference/veryfront/mcp"},{"title":"veryfront/mdx","href":"/code/api-reference/veryfront/mdx"},{"title":"veryfront/metrics","href":"/code/api-reference/veryfront/metrics"},{"title":"veryfront/middleware","href":"/code/api-reference/veryfront/middleware"},{"title":"veryfront/oauth","href":"/code/api-reference/veryfront/oauth"},{"title":"veryfront/observability","href":"/code/api-reference/veryfront/observability"},{"title":"veryfront/platform","href":"/code/api-reference/veryfront/platform"},{"title":"veryfront/prompt","href":"/code/api-reference/veryfront/prompt"},{"title":"veryfront/provider","href":"/code/api-reference/veryfront/provider"},{"title":"veryfront/release-assets","href":"/code/api-reference/veryfront/release-assets"},{"title":"veryfront/resource","href":"/code/api-reference/veryfront/resource"},{"title":"veryfront/router","href":"/code/api-reference/veryfront/router"},{"title":"veryfront/run-events","href":"/code/api-reference/veryfront/run-events"},{"title":"veryfront/runs","href":"/code/api-reference/veryfront/runs"},{"title":"veryfront/sandbox","href":"/code/api-reference/veryfront/sandbox"},{"title":"veryfront/scaffold","href":"/code/api-reference/veryfront/scaffold"},{"title":"veryfront/schedule","href":"/code/api-reference/veryfront/schedule"},{"title":"veryfront/schemas","href":"/code/api-reference/veryfront/schemas"},{"title":"veryfront/security","href":"/code/api-reference/veryfront/security"},{"title":"veryfront/server","href":"/code/api-reference/veryfront/server"},{"title":"veryfront/skill","href":"/code/api-reference/veryfront/skill"},{"title":"veryfront/task","href":"/code/api-reference/veryfront/task"},{"title":"veryfront/testing","href":"/code/api-reference/veryfront/testing"},{"title":"veryfront/tool","href":"/code/api-reference/veryfront/tool"},{"title":"veryfront/trigger","href":"/code/api-reference/veryfront/trigger"},{"title":"veryfront/ui","href":"/code/api-reference/veryfront/ui"},{"title":"veryfront/utils","href":"/code/api-reference/veryfront/utils"},{"title":"veryfront/webhook","href":"/code/api-reference/veryfront/webhook"},{"title":"veryfront/workflow","href":"/code/api-reference/veryfront/workflow"}]}]},{"product":"Veryfront Studio","pages":[{"title":"Veryfront Studio","href":"/studio"}]},{"product":"Veryfront Cloud","pages":[{"title":"Veryfront Cloud","href":"/cloud"}]},{"product":"Veryfront Agent","pages":[{"title":"Veryfront Agent","href":"/agent"}]}]},"basePath":"","title":"Tool - Veryfront","buildId":"dpl_ATnXPMW25DMPUr9VBw6kL6MfBt6T","deploymentId":"dpl_ATnXPMW25DMPUr9VBw6kL6MfBt6T","dynamics":[],"chunks":[]}