{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-docs/functions/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["partial"]},"type":"markdown"},"seo":{"title":"Functions & CLI AI Best Practices | Functions & CLI | Sinch","siteUrl":"https://developers.sinch.com","llmstxt":{"title":"Sinch Developer Documentation","description":"LLMs.txt containing a map of all the documentation files for Sinch.","sections":[{"title":"Numbers API","description":"The Numbers API enables you to search for, view, and activate numbers. It's considered a precursor to other APIs in the Sinch product family. The numbers API can be used in tandem with any of our APIs that perform messaging or calling.","includeFiles":["docs/numbers/**/*.md","docs/numbers/**/*.yaml"],"excludeFiles":["docs/numbers/index.md"]},{"title":"Conversation API","description":"Send and receive messages globally on SMS, RCS, WhatsApp, and other channels with Sinch's Conversation API. Conversation API is the API to use for all new SMS integrations with Sinch; its SMS channel replaces the standalone SMS REST API, which reached end of sale on 15 April 2026. Conversation API has unified error messages, consistent request payloads, and channel-agnostic webhook payloads.","includeFiles":["docs/conversation/**/*.md","docs/conversation/**/*.yaml"],"excludeFiles":["docs/conversation/index.md"]},{"title":"Standalone SMS REST API (end of sale, existing integrations only)","description":"The standalone SMS REST API reached end of sale on 15 April 2026 and is no longer available to new customers. All new SMS integrations must use the SMS channel of Conversation API (https://developers.sinch.com/docs/conversation/channel-support/sms/). Use these pages only to maintain an existing standalone SMS REST API integration, or to migrate it to Conversation API.","includeFiles":["docs/sms/**/*.md","docs/sms/**/*.yaml"],"excludeFiles":["docs/sms/index.md","docs/sms/**/md_snippets/**"]},{"title":"Voice API (legacy/GA)","description":"Which Voice API? If you are building something using voice AI agents, use the Voice API v2. To learn more, you can read [Why migrate to v2?](/docs/voice-2.0/migration.md) or [What's new?](/docs/voice-2.0/whatsnew.md).\n\nThe Voice API works as a big telephony switch. The Voice API handles incoming phone calls (also known as incoming call “legs”), sets up outgoing phone calls (or outgoing call “legs”), and bridges the two. The incoming call leg may come in over a data connection (from a smartphone or web application using the Sinch SDKs) or through a local phone number (from the PSTN network). Similarly, the outgoing call leg can be over data (to another smartphone or web application using the Sinch SDKs) or the PSTN network.","includeFiles":["docs/voice/**/*.md"],"excludeFiles":["docs/voice/index.md"]},{"title":"Voice API v2 (recommended for new builds/preview)","description":"Which Voice API? If you are building something using voice AI agents, use the Voice API v2. To learn more, you can read [Why migrate to v2?](/docs/voice-2.0/migration.md) or [What's new?](/docs/voice-2.0/whatsnew.md).\n\nThe Voice API v2 enables embedding voice calling into applications for virtually limitless use cases. From voice-enabling AI agents to allow real-time conversational AI workflows over the phone, to number masking for privacy, automated appointment reminders, and outreach campaigns with answering machine detection, to bridging calls between PSTN and SIP endpoints, the API offers the flexibility and control needed for modern communications. The Sinch Programmable Voice is a cloud-native global voice platform, composed by multiple Inbound and Outbound voice channels. All these channels can be combined using our powerful markup language called SVAML v2, creating a toolbox capable of building almost limitless use cases. Our SVAML uses the concept of commands, and customers can use a combination of our commands to interact with calls in all channels, in order to model from the most basic to highly complex scenarios, required to fulfill their voice calling needs.","includeFiles":["docs/voice-2.0/**/*.md"],"excludeFiles":["docs/voice-2.0/index.md"]},{"title":"Verification API","description":"The Verification API is a platform for phone number verification. It consists of the API and different software development kits (the Sinch SDKs) that you integrate with your smartphone or web application and cloud based back-end services. Together they enable SMS, Flashcall, Phone Call and Data verification in your application.","includeFiles":["docs/verification/**/*.md","docs/verification/**/*.yaml"],"excludeFiles":["docs/verification/index.md"]},{"title":"Provisioning API","description":"Provisioning API allows you to programmatically set up your senders, accounts and templates on your favorite messaging platforms on the Conversation API. For now, you can create your first WhatsApp channel through Meta's Embedded sign up, you can configure your first SMS App and configure your webhooks. As development continues, we will be adding the most commonly used channels.","includeFiles":["docs/provisioning-api/**/*.md","docs/provisioning-api/**/*.json"],"excludeFiles":["docs/provisioning-api/index.md"]},{"title":"Elastic SIP Trunking API","description":"With Elastic SIP Trunking you can create and manage your SIP trunks and phone numbers programmatically.","includeFiles":["docs/est/**/*.md","docs/est/**/*.yaml"],"excludeFiles":["docs/est/index.md"]},{"title":"Fax API","description":"Send and receive HIPAA compliant faxes on our modern fax platform using our developer-friendly API.","includeFiles":["docs/fax/**/*.md","docs/fax/**/*.yaml"],"excludeFiles":["docs/fax/index.md"]},{"title":"In-app Voice and Video SDK","description":"The In-app Voice and Video SDK enables you to add voice and video calling capabilities directly into your mobile or web application using the Sinch SDKs.","includeFiles":["docs/in-app-calling/**/*.md"],"excludeFiles":["docs/in-app-calling/index.md"]},{"title":"Number Lookup API","description":"The Number Lookup API is designed to provide in-depth information about phone numbers, helping enterprises enhance their communication strategies and prevent fraud. By identifying the type of phone line (for example, mobile, landline, VoIP) and the associated carrier, the API allows businesses to optimize routing, reduce unnecessary costs, and improve customer engagement.","includeFiles":["docs/number-lookup-api-v2/**/*.md","docs/number-lookup-api-v2/**/*.yaml"],"excludeFiles":["docs/number-lookup-api-v2/index.md"]},{"title":"Functions","description":"Serverless compute for voice and messaging. Deploy your code and Sinch routes live calls and messages to it — no infrastructure to run.","includeFiles":["docs/functions/functions/**/*.md","docs/functions/concepts/**/*.md","docs/functions/ai-support.md","docs/functions/reference/**/*.md"],"excludeFiles":["docs/functions/functions/index.md"]},{"title":"CLI","description":"One command line for Sinch numbers, messaging, voice, fax, SIP trunking and porting, and the full Functions lifecycle — scaffold, run locally, deploy, and manage.","includeFiles":["docs/functions/cli/**/*.md"],"excludeFiles":["docs/functions/cli/index.md"]}]},"description":"How to use AI tools with Sinch Functions and the Sinch CLI."},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"using-ai-tools-with-sinch-functions-and-the-cli","__idx":0},"children":["Using AI tools with Sinch Functions and the CLI"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Note:"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This guide includes best practices for using generative AI tools with Sinch's ","Functions"," API. Generative AI can make mistakes, and Sinch has limited influence over the output of any given generative AI tool. Ensure you review any code produced by generative AI to confirm its accuracy, stability, and security against our documentation, your environment, and your needs."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use AI tools to write Sinch Functions and to run the Sinch CLI."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the sections below, we provide guidance on how LLMs, AI tools, and AI agents can consume and navigate our documentation using several different methods."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"using-the-llmstxt-page-to-navigate-sinchs-developer-documentation","__idx":1},"children":["Using the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["llms.txt"]}," page to navigate Sinch's developer documentation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you are using an AI tool, LLM, or agent to navigate our documentation site, you can visit our ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://developers.sinch.com/llms.txt"},"children":["llms.txt"]}," page (located at ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://developers.sinch.com/llms.txt"]},") for a map of all the documentation files for Sinch."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This page is in plaintext, and it provides the title of each page, a description, and a link to the Markdown version of the page for easy LLM consumption and analysis."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"viewing-markdown-versions-of-sinchs-developer-documentation","__idx":2},"children":["Viewing Markdown versions of Sinch's developer documentation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Most pages on Sinch's developer documentation site has a Markdown counterpart."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Markdown version of the page is in plaintext, making it easier for AI tools, LLMs, and agents to consume the contents."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To access the Markdown version of a page, simply append ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".md"]}," to the end of the URL. For example, to access the Markdown version of this page, simply add ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".md"]}," to the end of the URL in the address bar."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Additional examples are provided in the table below:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Page URL"},"children":["Page URL"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Markdown version"},"children":["Markdown version"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://developers.sinch.com/docs/conversation/getting-started"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://developers.sinch.com/docs/conversation/getting-started.md"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://developers.sinch.com/docs/voice/getting-started"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://developers.sinch.com/docs/voice/getting-started.md"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://developers.sinch.com/docs/in-app-calling/getting-started"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://developers.sinch.com/docs/in-app-calling/getting-started.md"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://developers.sinch.com/docs/est/getting-started"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://developers.sinch.com/docs/est/getting-started.md"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://developers.sinch.com/docs/numbers/getting-started"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://developers.sinch.com/docs/numbers/getting-started.md"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For a complete directory of Markdown pages, ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://developers.sinch.com/llms.txt"},"children":["see our ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["llms.txt"]}," page"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"using-sinchs-documentation-mcp-server","__idx":3},"children":["Using Sinch's documentation MCP server"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In order to generate code samples using AI tools, you may connect directly to Sinch's documentation MCP server. This will make several tools available to your system that facilitate endpoint identification, information lookups, and general context-setting."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Note:"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Sinch's documentation MCP server provides tools that help you navigate Sinch's documentation. Because Sinch's documentation includes various code samples, it can also help you generate code samples. It will not make calls to the identified endpoints for you; you must include any provided code in your solution and customize it to correctly reference your account and credentials."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The tools are described in the table below. Note that, while you may not have to explicitly call out these tools when designing your prompt (or using the prompts we provide later in this document), you must still ensure the tools are activated in whatever AI environment you work in:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Tool"},"children":["Tool"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameters"},"children":["Parameters"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["whoami"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["None"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Returns information about the authenticated user."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["list-apis"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name?: string"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Lists available APIs with their context and purpose."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["get-endpoints"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name: string"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Returns all endpoints and their descriptions for a specific API."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["get-endpoint-info"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name: string``path: string``method: string"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Returns comprehensive information about a specific endpoint, including parameters, security, and examples."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["get-security-schemes"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name: string``path: string``method: string"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Gets the security schemes for a specific API."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["get-full-api-description"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name: string"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Returns the complete OpenAPI description."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["search"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["query: string"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Searches documentation and returns relevant content for a query."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"connecting-to-the-mcp-server","__idx":4},"children":["Connecting to the MCP server"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You may connect to our documentation MCP server by clicking the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Connect MCP"]}," button: ",{"$$mdtype":"Tag","name":"ConnectMCP","attributes":{"placement":"bottom","alignment":"start","options":["cursor","vscode","claude","claude-code","codex","copy"]},"children":[]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Note:"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The AI tools listed in the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Connect MCP"]}," button drop-down list and the tools described below are for illustrative purposes. You may use our documentation MCP server with any AI tool that can connect to MCP servers."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Alternatively, copy the following URL and add it to your AI tool: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://developers.sinch.com/mcp"]},". Some examples of how to add the Sinch documentation MCP server tools to your AI solution are detailed in the tabs below:"]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Cursor","disable":false},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"connect-cursor-to-the-mcp-server","__idx":5},"children":["Connect Cursor to the MCP server"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In Cursor, open the command palette."]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["macOS: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Command + Shift + P"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Windows/Linux: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Ctrl + Shift + P"]}]}]},{"$$mdtype":"Tag","name":"ol","attributes":{"start":2},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Type \"Open MCP settings\" in the command palette."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Select \"Add custom MCP\"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Cursor opens the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["mcp.json"]}," file."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"configure-the-mcp-server","__idx":6},"children":["Configure the MCP server"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["mcp.json"]},", add your server configuration:"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"mcpServers\": {\n    \"sinch-mcp\": {\n      \"url\": \"https://developers.sinch.com/mcp\"\n    }\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Save the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["mcp.json"]}," file."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Return to MCP settings and confirm the connection."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If authentication is required, select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Needs login"]}," and complete the sign-in flow."," ","After connecting, Cursor displays the list of available tools."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"test-the-cursor-connection","__idx":7},"children":["Test the Cursor connection"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In Cursor chat (Agent mode), ask a question that triggers an MCP tool."]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Claude Code","disable":false},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"connect-claude-code-to-the-mcp-server","__idx":8},"children":["Connect Claude Code to the MCP server"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Run: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["claude mcp add ${MCP_SERVER_NAME} https://developers.sinch.com/mcp --transport http"]}," where ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["${MCP_SERVER_NAME}"]}," is your desired server name (for example, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sinch_mcp"]},")."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In the Claude Code CLI, type ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/mcp"]}," and complete authentication if prompted."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Claude Code lists the available tools with descriptions and parameters."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"test-the-claude-code-connection","__idx":9},"children":["Test the Claude Code connection"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the Claude Code CLI, ask the AI agent to perform an instruction that uses an MCP tool."]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"VS Code","disable":false},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"connect-vs-code-to-the-mcp-server","__idx":10},"children":["Connect VS Code to the MCP server"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In VS Code, open the command palette."]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["macOS: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Command + Shift + P"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Windows/Linux: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Ctrl + Shift + P"]}]}]},{"$$mdtype":"Tag","name":"ol","attributes":{"start":2},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Type \"MCP: Add Server\" in the command palette."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Select \"HTTP\" to connect to a remote MCP server."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Enter the MCP server URL (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://developers.sinch.com/mcp"]},")."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Enter a name for the connection."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"test-the-vs-code-connection","__idx":11},"children":["Test the VS Code connection"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Open Chat with AI in Agent mode and select the Tools icon."," ","Confirm that your MCP connection appears with a list of available tools."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ask the AI to perform a query that uses an MCP tool."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"using-sinchs-skills-to-streamline-ai-usage","__idx":12},"children":["Using Sinch's skills to streamline AI usage"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Skills files (or \"skills\") provide AI-specific guidance, hints, troubleshooting tips, and use-case information that can help your AI agents better understand various topics. They are especially helpful when using AI tools and agents in coding environments."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Sinch provides skills that help your AI solution navigate our documentation, generate code samples, and perform API calls."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To view Sinch's skills files, visit the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://github.com/sinch/skills"},"children":["Sinch Skills GitHub repo"]},". The sub-sections below provide concise installation, usage, and structural information. For a more thorough explanation of Sinch Skills, see our ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/ai-support/sinch-skills"},"children":["dedicated developer document on Sinch Skills"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"installing-sinch-skills","__idx":13},"children":["Installing Sinch skills"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To make use of our skills files, you must install them in your coding environment. Information on ways to install Sinch's skills files are included on the tabs below:"]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Install using NPM","disable":false},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"installing-sinchs-skills-using-npm","__idx":14},"children":["Installing Sinch's skills using NPM"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To install Sinch skills using NPM:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Open your preferred IDE and navigate to the directory or repo in which you project is stored.",{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Note:"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Alternatively, you may navigate to your home directory to install Sinch's skill files. They will then be available for use across various coding projects."]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Open a terminal and/or command prompt."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Run the command ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["npx skills add sinch/skills"]},"."]}]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Install manually","disable":false},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"installing-sinch-skills-manually","__idx":15},"children":["Installing Sinch skills manually"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To install Sinch's skills manually:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Create a local copy of the Sinch skills content found in the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://github.com/sinch/skills"},"children":["Sinch skills repo"]},". To do this, you may:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Clone the repo to your local machine, or"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Download the contents of the repo in a ZIP folder"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Copy the contents of the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["skills"]}," folder."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Open you preferred IDE and navigate to the directory or repo in which your project is stored."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Note:"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Alternatively, you may navigate to your home directory to install Sinch's skill files. They will then be available for use across various coding projects."]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Create, or navigate to, one of the following folders:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Location"},"children":["Location"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Explanation"},"children":["Explanation"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".github/skills"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Navigate to/create this folder if you are using GitHub Copilot."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".claude/skills"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Navigate to/create this folder if you are using Claude Code."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["agents/skills"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Navigate to/create this folder if you are coding in an environment other than Copilot or Claude Code."]}]}]}]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Paste the contents of the Sinch ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["skills"]}," folder into the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["skills"]}," folder you navigated to in step 4."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"using-sinch-skills","__idx":16},"children":["Using Sinch skills"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Once Sinch's skills have been installed, your AI tool or agent should make use of them automatically. AI tools and agents will consult the skills files whenever you make a request."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"sinch-skills-structure","__idx":17},"children":["Sinch skills structure"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Each skill lives in its own folder under ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["skills/"]},". The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SKILL.md"]}," file contains YAML frontmatter (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["description"]},") and markdown sections including Overview, Getting Started, Key Concepts, Common Patterns, Gotchas & Best Practices, and Links sections."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"skills/\n  <product>/\n    SKILL.md            # Main skill file (required)\n    scripts/            # Optional helper scripts\n    references/         # Optional detailed reference material\n    assets/             # Optional images or other assets\n"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"skills-for-functions-and-the-cli","__idx":18},"children":["Skills for Functions and the CLI"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Four ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/ai-support/sinch-skills"},"children":["Sinch Skills"]}," cover Functions and the CLI: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sinch-cli"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sinch-functions"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sinch-functions-node"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sinch-functions-dotnet"]},". The CLI can install the Sinch Skills for you with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sinch skills install"]},"."]}]},"headings":[{"value":"Using AI tools with Sinch Functions and the CLI","id":"using-ai-tools-with-sinch-functions-and-the-cli","depth":1},{"value":"Using the llms.txt page to navigate Sinch's developer documentation","id":"using-the-llmstxt-page-to-navigate-sinchs-developer-documentation","depth":2},{"value":"Viewing Markdown versions of Sinch's developer documentation","id":"viewing-markdown-versions-of-sinchs-developer-documentation","depth":2},{"value":"Using Sinch's documentation MCP server","id":"using-sinchs-documentation-mcp-server","depth":2},{"value":"Connecting to the MCP server","id":"connecting-to-the-mcp-server","depth":3},{"value":"Connect Cursor to the MCP server","id":"connect-cursor-to-the-mcp-server","depth":4},{"value":"Configure the MCP server","id":"configure-the-mcp-server","depth":4},{"value":"Test the Cursor connection","id":"test-the-cursor-connection","depth":4},{"value":"Connect Claude Code to the MCP server","id":"connect-claude-code-to-the-mcp-server","depth":4},{"value":"Test the Claude Code connection","id":"test-the-claude-code-connection","depth":4},{"value":"Connect VS Code to the MCP server","id":"connect-vs-code-to-the-mcp-server","depth":4},{"value":"Test the VS Code connection","id":"test-the-vs-code-connection","depth":4},{"value":"Using Sinch's skills to streamline AI usage","id":"using-sinchs-skills-to-streamline-ai-usage","depth":2},{"value":"Installing Sinch skills","id":"installing-sinch-skills","depth":3},{"value":"Installing Sinch's skills using NPM","id":"installing-sinchs-skills-using-npm","depth":4},{"value":"Installing Sinch skills manually","id":"installing-sinch-skills-manually","depth":4},{"value":"Using Sinch skills","id":"using-sinch-skills","depth":3},{"value":"Sinch skills structure","id":"sinch-skills-structure","depth":3},{"value":"Skills for Functions and the CLI","id":"skills-for-functions-and-the-cli","depth":2}],"frontmatter":{"seo":{"title":"Functions & CLI AI Best Practices | Functions & CLI | Sinch","description":"How to use AI tools with Sinch Functions and the Sinch CLI."},"markdown":{"toc":{"depth":3}}},"lastModified":"2026-10-12T21:36:30.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/functions/ai-support","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}