# How to integrate Griptape MCP with Vercel AI SDK v6

```json
{
  "title": "How to integrate Griptape MCP with Vercel AI SDK v6",
  "toolkit": "Griptape",
  "toolkit_slug": "griptape",
  "framework": "Vercel AI SDK",
  "framework_slug": "ai-sdk",
  "url": "https://composio.dev/toolkits/griptape/framework/ai-sdk",
  "markdown_url": "https://composio.dev/toolkits/griptape/framework/ai-sdk.md",
  "updated_at": "2026-05-12T10:14:22.153Z"
}
```

## Introduction

This guide walks you through connecting Griptape to Vercel AI SDK v6 using the Composio tool router. By the end, you'll have a working Griptape agent that can create a new assistant named 'dochelper', list all assistants available in your workspace, start a run for assistant 'codegenpro' with input data through natural language commands.
This guide will help you understand how to give your Vercel AI SDK agent real control over a Griptape account through Composio's Griptape MCP server.
Before we dive in, let's take a quick look at the key ideas and tools involved.

## Also integrate Griptape with

- [OpenAI Agents SDK](https://composio.dev/toolkits/griptape/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/griptape/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/griptape/framework/claude-code)
- [Claude Cowork](https://composio.dev/toolkits/griptape/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/griptape/framework/codex)
- [OpenClaw](https://composio.dev/toolkits/griptape/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/griptape/framework/hermes-agent)
- [CLI](https://composio.dev/toolkits/griptape/framework/cli)
- [Google ADK](https://composio.dev/toolkits/griptape/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/griptape/framework/langchain)
- [Mastra AI](https://composio.dev/toolkits/griptape/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/griptape/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/griptape/framework/crew-ai)

## TL;DR

Here's what you'll learn:
- How to set up and configure a Vercel AI SDK agent with Griptape integration
- Using Composio's Tool Router to dynamically load and access Griptape tools
- Creating an MCP client connection using HTTP transport
- Building an interactive CLI chat interface with conversation history management
- Handling tool calls and results within the Vercel AI SDK framework

## What is Vercel AI SDK?

The Vercel AI SDK is a TypeScript library for building AI-powered applications. It provides tools for creating agents that can use external services and maintain conversation state.
Key features include:
- streamText: Core function for streaming responses with real-time tool support
- MCP Client: Built-in support for Model Context Protocol via @ai-sdk/mcp
- Step Counting: Control multi-step tool execution with stopWhen: stepCountIs()
- OpenAI Provider: Native integration with OpenAI models

## What is the Griptape MCP server, and what's possible with it?

The Griptape MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Griptape account. It provides structured and secure access to your Griptape platform, so your agent can create assistants, launch and monitor AI runs, retrieve logs, and analyze results automatically on your behalf.
- Automated assistant creation and management: Easily direct your agent to create new assistants or list existing ones, making it simple to manage your AI resources in Griptape Cloud.
- Launching and controlling assistant runs: Let your agent start new assistant runs, cancel ongoing executions, or fetch the status of any run for streamlined AI workflow management.
- Real-time monitoring of assistant activities: Have your agent stream live run events, monitor progress, or retrieve detailed logs to keep tabs on every step of your generative AI processes.
- Error handling and diagnostics: Ask your agent to fetch detailed error reports for failed runs, helping you troubleshoot and resolve issues quickly and efficiently.
- Result retrieval and historical analysis: Automatically pull final outputs from completed runs and review historical execution data, empowering you to analyze and improve your generative AI pipelines over time.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `GRIPTAPE_ASSISTANT_CREATION` | Assistant Creation | Tool to create a new assistant. Use when you need to register a uniquely named assistant in Griptape Cloud before initiating runs. |
| `GRIPTAPE_ASSISTANT_LISTING` | List Assistants | Tool to list all assistants. Use after authenticating with Griptape Cloud to retrieve available assistants. Supports optional pagination. |
| `GRIPTAPE_ASSISTANT_RUN_CANCELLATION` | Cancel Assistant Run | Tool to cancel an ongoing assistant run. Use when you need to stop a run prematurely after confirming the run ID is valid. |
| `GRIPTAPE_ASSISTANT_RUN_CREATION` | Assistant Run Creation | Creates a new assistant run to execute a conversation turn with a Griptape Cloud assistant. Use this action to send input messages to an assistant and initiate processing. The run is queued and processed asynchronously. Use the assistant run retrieval or result retrieval actions to get the output once complete. |
| `GRIPTAPE_ASSISTANT_RUN_ERROR_DETAILS` | Get Assistant Run Error Details | Tool to fetch detailed error information for a specific assistant run. Use after an assistant run has failed to inspect error details. |
| `GRIPTAPE_ASSISTANT_RUN_LISTING` | List Assistant Runs | Tool to list all runs for a given assistant. Use when you need historical run executions for analysis after using the assistant. |
| `GRIPTAPE_ASSISTANT_RUN_LOGS_RETRIEVAL` | Assistant Run Logs Retrieval | Retrieve the complete execution logs for an assistant run in Griptape Cloud. Returns a chronological timeline of events that occurred during the run, including: - Structure lifecycle events (start/finish) - Task execution events (start/finish with input/output) - Prompt events (model calls with token counts) - Streaming text chunks (for real-time output) Use this tool to debug runs, analyze performance (token usage), or inspect intermediate outputs. The assistant run must exist; use List Assistant Runs first to get valid run IDs. |
| `GRIPTAPE_ASSISTANT_RUN_RETRIEVAL` | Retrieve Assistant Run | Tool to retrieve an assistant run's status and details. Use when you need current status and metadata for a specific assistant run. |
| `GRIPTAPE_ASSISTANT_RUN_RETRY` | Retry Assistant Run | Tool to attempt retrying a failed assistant run. If retry is not available (e.g., run hasn't failed or endpoint not supported), returns the current run status instead. Use when checking if a run can be retried or to get its current state. |
| `GRIPTAPE_CANCEL_DATA_JOB` | Cancel Data Job | Tool to cancel a running or queued data job. Use when you need to stop a data job that is in progress or queued. |
| `GRIPTAPE_CREATE_BUCKET` | Create Bucket | Tool to create a new bucket in Griptape Cloud. Use when you need to create storage buckets for organizing assets and data. |
| `GRIPTAPE_CREATE_BUCKET_ASSET` | Create Bucket Asset | Tool to create a new asset in a Griptape Cloud bucket. Use when you need to add a new asset to a bucket by specifying its name. |
| `GRIPTAPE_CREATE_DATA_CONNECTOR` | Create Data Connector | Tool to create a new data connector in Griptape Cloud. Data connectors enable ingestion from various sources like web pages, Confluence, Google Drive, S3, or data lakes. After creation, the connector can automatically sync data to knowledge bases based on the configured schedule. |
| `GRIPTAPE_CREATE_DATA_CONNECTOR_JOB` | Create Data Connector Job | Tool to create a data job for a data connector in Griptape Cloud. Use when you need to trigger data ingestion or processing for a specific data connector. The job will be queued and executed asynchronously. |
| `GRIPTAPE_CREATE_EXPORT_JOB` | Create Export Job | Tool to create a new export job in Griptape Cloud. Use when you need to initiate an export operation with custom data. |
| `GRIPTAPE_CREATE_FUNCTION` | Create Function | Tool to create a new function in Griptape Cloud. Use when you need to register a new serverless function with optional code configuration and environment variables. |
| `GRIPTAPE_CREATE_FUNCTION_DEPLOYMENT` | Create Function Deployment | Tool to create a new deployment for a function from a code source. Use when you need to deploy a function from a GitHub repository to Griptape Cloud. |
| `GRIPTAPE_CREATE_IMPORT_JOB` | Create Import Job | Tool to create a new import job in Griptape Cloud. Use when you need to initiate a data import operation from a data lake asset (e.g., S3 bucket) into Griptape Cloud. |
| `GRIPTAPE_CREATE_INTEGRATION` | Create Integration | Tool to create a new integration in Griptape Cloud. Use when you need to register a new integration (slack, github_app, or webhook) to connect external services with assistants or structures. |
| `GRIPTAPE_CREATE_KNOWLEDGE_BASE` | Create Knowledge Base | Tool to create a new knowledge base in Griptape Cloud. Use when you need to set up a vector store for document indexing and semantic search. |
| `GRIPTAPE_CREATE_KNOWLEDGE_BASE_JOB` | Create Knowledge Base Job | Tool to create a knowledge base job for ingesting data into a knowledge base. Use when you need to trigger data ingestion or processing for a specific knowledge base. |
| `GRIPTAPE_CREATE_LIBRARY` | Create Library | Tool to create a new library in Griptape Cloud. Use when you need to organize data connectors and knowledge bases for an assistant to use. |
| `GRIPTAPE_CREATE_MODEL` | Create Model Configuration | Tool to create a new model configuration in Griptape Cloud. Use when you need to register a new model with specific authentication and configuration settings before using it in assistants or other Griptape resources. |
| `GRIPTAPE_CREATE_MODEL_AUTH_CONFIG` | Create Model Auth Config | Tool to create a model authentication configuration in Griptape Cloud. Use when you need to set up new authentication for a model API endpoint. |
| `GRIPTAPE_CREATE_ORGANIZATION_API_KEY` | Create Organization API Key | Tool to create a new API key for a specific organization. Use when you need to generate a new API key for authentication purposes. The API key value is only returned once during creation. |
| `GRIPTAPE_CREATE_RETRIEVER` | Create Retriever | Tool to create a new retriever in Griptape Cloud. Use when you need to create a retriever with associated components for document retrieval capabilities. |
| `GRIPTAPE_CREATE_RULE` | Create Rule | Tool to create a new rule in Griptape Cloud. Use when you need to define behavioral guidelines or constraints for AI assistants. |
| `GRIPTAPE_CREATE_SECRET` | Create Secret | Tool to create a new secret in Griptape Cloud. Use when you need to store sensitive information like API keys, passwords, or tokens. |
| `GRIPTAPE_CREATE_STRUCTURE` | Create Structure | Tool to create a new structure in Griptape Cloud. Use when you need to register a workflow or data processing pipeline that can be deployed and executed. |
| `GRIPTAPE_CREATE_STRUCTURE_DEPLOYMENT` | Create Structure Deployment | Tool to create a new deployment for a structure. Use when you need to deploy a structure from a GitHub repository to Griptape Cloud. |
| `GRIPTAPE_CREATE_THREAD` | Create Thread | Tool to create a new thread in Griptape Cloud. Use when you need to start a new conversation thread for organizing messages and interactions. |
| `GRIPTAPE_CREATE_THREAD_MESSAGE` | Create Thread Message | Tool to create a new message in a specific thread. Use when you need to add a message with input and output content to a conversation thread in Griptape Cloud. |
| `GRIPTAPE_CREATE_TOOL_DEPLOYMENT` | Create Tool Deployment | Create a new deployment for a tool from a GitHub repository. Use when you need to deploy or update tool code from a GitHub source. The deployment process is asynchronous - use the Get Tool Deployment Status action to poll for completion. |
| `GRIPTAPE_DELETE_API_KEY` | Delete API Key | Tool to delete an API key by ID. Use when you need to permanently remove an API key from Griptape Cloud. |
| `GRIPTAPE_DELETE_ASSISTANT` | Delete Assistant | Tool to delete an assistant by ID. Use when you need to permanently remove an assistant from Griptape Cloud. |
| `GRIPTAPE_DELETE_BUCKET` | Delete Bucket | Tool to delete a bucket by ID. Use when you need to remove a specific bucket from Griptape Cloud. |
| `GRIPTAPE_DELETE_BUCKET_ASSET` | Delete Bucket Asset | Tool to delete a specific asset from a Griptape Cloud bucket. Use when you need to remove an asset from a bucket by name. |
| `GRIPTAPE_DELETE_DATA_CONNECTOR` | Delete Data Connector | Tool to delete a data connector. Use when you need to permanently remove a data connector from Griptape Cloud. |
| `GRIPTAPE_DELETE_FUNCTION` | Delete Function | Tool to delete a function from Griptape Cloud. Use when you need to permanently remove a function by its ID. |
| `GRIPTAPE_DELETE_INTEGRATION` | Delete Integration | Tool to delete an integration by ID. Use when you need to permanently remove an integration from Griptape Cloud. |
| `GRIPTAPE_DELETE_KNOWLEDGE_BASE` | Delete Knowledge Base | Tool to delete a Knowledge Base from Griptape Cloud. Use when you need to permanently remove a knowledge base and all its associated data. This operation cannot be undone. |
| `GRIPTAPE_DELETE_LIBRARY` | Delete Library | Tool to delete a library from Griptape Cloud. Use when you need to permanently remove a library resource. |
| `GRIPTAPE_DELETE_MESSAGE` | Delete Message | Tool to delete a message by its ID. Use when you need to remove a specific message from Griptape Cloud. |
| `GRIPTAPE_DELETE_MODEL` | Delete Model Configuration | Tool to delete a model configuration from Griptape Cloud. Use when you need to permanently remove a model configuration. |
| `GRIPTAPE_DELETE_MODEL_AUTH_CONFIG` | Delete Model Auth Config | Tool to delete a model auth config by ID. Use when you need to permanently remove a model authentication configuration from Griptape Cloud. |
| `GRIPTAPE_DELETE_RULE` | Delete Rule | Tool to delete a rule by its ID. Use when you need to permanently remove a rule from Griptape Cloud. |
| `GRIPTAPE_DELETE_RULESET` | Delete Ruleset | Tool to permanently delete a ruleset from Griptape Cloud by its ID. Use when you need to remove a ruleset and all its associated rules. This operation cannot be undone. |
| `GRIPTAPE_DELETE_SECRET` | Delete Secret | Tool to delete a secret from Griptape Cloud. Use when you need to permanently remove a secret by its ID. |
| `GRIPTAPE_DELETE_STRUCTURE` | Delete Structure | Tool to delete a structure from Griptape Cloud. Use when you need to permanently remove a structure by its ID. This operation is irreversible. |
| `GRIPTAPE_DELETE_THREAD` | Delete Thread | Tool to delete a thread by its ID. Use when you need to permanently remove a conversation thread and all its associated messages from Griptape Cloud. |
| `GRIPTAPE_DELETE_TOOL` | Delete Tool | Tool to delete a tool from Griptape Cloud. Use when you need to permanently remove a tool resource by its ID. |
| `GRIPTAPE_GET_API_KEY` | Get API Key | Tool to retrieve an API key's details. Use when you need to get information about a specific API key by its ID. |
| `GRIPTAPE_GET_ASSISTANT` | Get Assistant | Tool to retrieve a specific assistant's details by ID. Use when you need detailed information about a particular assistant including its configuration, knowledge bases, and tools. |
| `GRIPTAPE_GET_BILLING_MANAGEMENT_URL` | Get Billing Management URL | Tool to retrieve the billing management portal URL. Use when you need to access or redirect users to the billing portal for subscription or payment management. |
| `GRIPTAPE_GET_BUCKET` | Get Bucket | Tool to retrieve a bucket's details by its ID. Use when you need to fetch information about a specific bucket in Griptape Cloud. |
| `GRIPTAPE_GET_BUCKET_ASSET` | Get Bucket Asset | Tool to retrieve a specific asset from a Griptape Cloud bucket. Use when you need to fetch asset metadata or contents from a bucket by name. |
| `GRIPTAPE_GET_BUCKET_ASSET_URL` | Get Bucket Asset URL | Tool to generate a signed URL for accessing or uploading bucket assets. Use when you need a temporary URL to GET (download) or PUT (upload) an asset in a Griptape Cloud bucket. |
| `GRIPTAPE_GET_CONFIG` | Get Configuration | Tool to retrieve Griptape Cloud configuration. Use when you need to access data lake settings or Google Drive connector configuration. |
| `GRIPTAPE_GET_CREDITS_BALANCE` | Get Credits Balance | Tool to retrieve the current credits balance. Use when you need to check available credits for billing or usage tracking. |
| `GRIPTAPE_GET_DATA_CONNECTOR` | Get Data Connector | Tool to retrieve a data connector's configuration and details from Griptape Cloud. Use when you need information about a specific data connector including its type, configuration, and metadata. |
| `GRIPTAPE_GET_DATA_JOB` | Get Data Job | Tool to retrieve a data job's status and details by its ID. Use when you need to check the current status, ingestion progress, or errors for a specific data job. |
| `GRIPTAPE_GET_EXPORT_JOB` | Get Export Job | Tool to retrieve an export job by ID. Use when you need to check the status or details of an export operation. |
| `GRIPTAPE_GET_FUNCTION` | Get Function | Tool to retrieve a function's details. Use when you need to get configuration, environment variables, or metadata for a specific function in Griptape Cloud. |
| `GRIPTAPE_GET_IMPORT_JOB` | Get Import Job | Tool to retrieve an import job's status and details. Use when you need to check the current status and metadata for a specific import job. |
| `GRIPTAPE_GET_INTEGRATION` | Get Integration | Tool to retrieve a specific integration's details by ID. Use when you need detailed information about a particular integration including its configuration, associated assistants, and structures. |
| `GRIPTAPE_GET_KNOWLEDGE_BASE` | Get Knowledge Base | Tool to retrieve a knowledge base's configuration and details from Griptape Cloud. Use when you need information about a specific knowledge base including its type, configuration, embedding model, and metadata. |
| `GRIPTAPE_GET_KNOWLEDGE_BASE_JOB` | Get Knowledge Base Job | Tool to retrieve a knowledge base job's status and details by its ID. Use when you need to check the current status, ingestion progress, or errors for a specific knowledge base job. |
| `GRIPTAPE_GET_KNOWLEDGE_BASE_SEARCH` | Get Knowledge Base Search | Tool to retrieve details of a specific knowledge base search by its ID. Use when you need to fetch results of a previously executed knowledge base search. |
| `GRIPTAPE_GET_LIBRARY` | Get Library | Tool to retrieve a specific library's details by ID. Use when you need detailed information about a library including its associated assistant, retrievers, knowledge bases, and data connectors. |
| `GRIPTAPE_GET_MESSAGE` | Get Message | Tool to retrieve a specific message's details by ID. Use when you need detailed information about a particular message from a thread. |
| `GRIPTAPE_GET_MODEL` | Get Model Configuration | Tool to retrieve a model configuration's details by its ID. Use when you need to get information about a specific model configuration in Griptape Cloud, including its name, type, authentication settings, and metadata. |
| `GRIPTAPE_GET_MODEL_AUTH_CONFIG` | Get Model Auth Config | Tool to retrieve a model auth config by ID. Use when you need to get configuration details for model authentication in Griptape Cloud. |
| `GRIPTAPE_GET_ORGANIZATION` | Get Organization | Tool to retrieve an organization's details by its ID. Use when you need information about a specific organization including its configuration, entitlement, and metadata. |
| `GRIPTAPE_GET_RETRIEVER` | Get Retriever | Tool to retrieve a retriever's details by its ID. Use when you need to fetch information about a specific retriever in Griptape Cloud, including its components and configuration. |
| `GRIPTAPE_GET_RETRIEVER_COMPONENT` | Get Retriever Component | Tool to retrieve a retriever component's details by its ID. Use when you need to fetch information about a specific retriever component in Griptape Cloud. |
| `GRIPTAPE_GET_RULE` | Get Rule | Tool to retrieve a specific rule's details by ID. Use when you need detailed information about a particular rule including its content, metadata, and timestamps. |
| `GRIPTAPE_GET_RULESET` | Get Ruleset | Tool to retrieve a specific ruleset's details by ID. Use when you need detailed information about a particular ruleset including its name, rules, metadata, and timestamps. |
| `GRIPTAPE_GET_RULESET_BY_ALIAS` | Get Ruleset by Alias | Retrieve a ruleset from Griptape Cloud by its unique alias identifier. The alias is typically an auto-generated 32-character hash (e.g., 'e9990de9925a40d1b8fce8455c63651f') created when the ruleset was first created, unless a custom alias was provided during creation. Returns the full ruleset details including name, metadata, rule IDs, and timestamps. Returns an empty list if no ruleset matches the given alias. |
| `GRIPTAPE_GET_SECRET` | Get Secret | Tool to retrieve a secret's details from Griptape Cloud. Use when you need information about a specific secret including its name, organization, and usage timestamps. |
| `GRIPTAPE_GET_STRUCTURE` | Get Structure | Tool to retrieve a structure's configuration and details from Griptape Cloud. Use when you need detailed information about a specific structure including its deployment, environment variables, and code configuration. |
| `GRIPTAPE_GET_STRUCTURES_DASHBOARD` | Get Structures Dashboard | Tool to retrieve dashboard metrics for structures. Use when you need analytics on deployments, runs, errors, durations, and token usage. |
| `GRIPTAPE_GET_THREAD` | Get Thread | Tool to retrieve a specific thread's details by ID. Use when you need detailed information about a particular conversation thread including its metadata and message statistics. |
| `GRIPTAPE_GET_TOOL` | Get Tool | Tool to retrieve a specific tool's details by ID. Use when you need detailed information about a particular tool including its configuration, environment variables, and deployment status. |
| `GRIPTAPE_GET_USAGE` | Get Usage | Tool to retrieve current usage statistics. Use when you need to check bytes ingested, RAG queries, runtime seconds, and their respective limits for the billing period. |
| `GRIPTAPE_GET_USER` | Get User | Tool to retrieve a user's details by their ID. Use when you need information about a specific user including their email, name, and organization memberships. |
| `GRIPTAPE_LIST_ASSISTANT_RUN_EVENTS` | List Assistant Run Events | Tool to list events for an assistant run with pagination support. Use when you need to retrieve execution events in a paginated manner, as opposed to streaming them. |
| `GRIPTAPE_LIST_BUCKET_ASSETS` | List Bucket Assets | Tool to list assets in a bucket. Use when you need to retrieve files stored in a Griptape Cloud bucket. Supports pagination and filtering by name prefix/postfix. |
| `GRIPTAPE_LIST_BUCKETS` | List Buckets | Tool to list all buckets in Griptape Cloud. Use after authenticating to retrieve available buckets with pagination support. |
| `GRIPTAPE_LIST_CONNECTIONS` | List Connections | Tool to list all connections. Use after authenticating with Griptape Cloud to retrieve available connections. Supports optional pagination and type filtering. |
| `GRIPTAPE_LIST_DATA_CONNECTORS` | List Data Connectors | Tool to list all data connectors. Use when you need to discover available data connectors and their configurations in Griptape Cloud. Supports pagination. |
| `GRIPTAPE_LIST_EMBEDDING_DRIVERS` | List Embedding Drivers | Tool to list available embedding drivers. Use when you need to retrieve supported drivers and their models before embedding text. |
| `GRIPTAPE_LIST_EXPORT_JOBS` | List Export Jobs | Tool to list export jobs from Griptape Cloud. Use when you need to view all export jobs with optional filtering by status and pagination. |
| `GRIPTAPE_LIST_FUNCTION_DEPLOYMENTS` | List Function Deployments | Tool to list all deployments for a specific function. Use when you need to retrieve deployment history and status for a function in Griptape Cloud. |
| `GRIPTAPE_LIST_FUNCTIONS` | List Functions | Tool to list all functions with optional pagination. Use when you need to discover available functions and their IDs in Griptape Cloud. |
| `GRIPTAPE_LIST_IMPORT_JOBS` | List Import Jobs | Tool to list import jobs in Griptape Cloud. Use when you need to retrieve import jobs with optional filtering by status and pagination support. |
| `GRIPTAPE_LIST_INTEGRATIONS` | List Integrations | Tool to list all integrations. Use when you need to discover available integrations in Griptape Cloud. Supports optional pagination. |
| `GRIPTAPE_LIST_KNOWLEDGE_BASE_JOBS` | List Knowledge Base Jobs | Tool to list knowledge base jobs for a specific knowledge base. Use when you need to retrieve jobs with optional filtering by status and pagination support. |
| `GRIPTAPE_LIST_KNOWLEDGE_BASE_QUERIES` | List Knowledge Base Queries | Tool to list all queries made to a specific Griptape Cloud knowledge base. Use when you need to retrieve historical query records including query text, results, and metadata. Supports pagination for large result sets. |
| `GRIPTAPE_LIST_KNOWLEDGE_BASES` | List Knowledge Bases | Tool to list all knowledge bases. Use to retrieve available knowledge bases in Griptape Cloud with optional pagination. |
| `GRIPTAPE_LIST_KNOWLEDGE_BASE_SEARCHES` | List Knowledge Base Searches | Tool to list all searches performed on a specific knowledge base. Use when you need to view the search history for a knowledge base. |
| `GRIPTAPE_LIST_LIBRARIES` | List Libraries | Tool to list all libraries in Griptape Cloud. Use after authenticating to retrieve available libraries with pagination support. |
| `GRIPTAPE_LIST_MODEL_AUTH_CONFIGS` | List Model Auth Configs | Tool to list all model authentication configurations with optional pagination. Use when you need to discover available model auth configs and their IDs in Griptape Cloud. |
| `GRIPTAPE_LIST_MODELS` | List Models | Tool to list all models in Griptape Cloud. Use when you need to discover available models and their configurations. Supports pagination and filtering by model type or default status. |
| `GRIPTAPE_LIST_ORGANIZATION_API_KEYS` | List Organization API Keys | Tool to list all API keys in a specific organization. Use when you need to retrieve all API keys for an organization with optional pagination support. |
| `GRIPTAPE_LIST_ORGANIZATIONS` | List Organizations | Tool to list all organizations in Griptape Cloud. Use after authenticating to retrieve available organizations. |
| `GRIPTAPE_LIST_RETRIEVER_COMPONENTS` | List Retriever Components | Tool to list all retriever components in Griptape Cloud. Use when you need to discover available retriever components and their configurations. Supports pagination. |
| `GRIPTAPE_LIST_RETRIEVERS` | List Retrievers | Tool to list all retrievers in Griptape Cloud. Use to retrieve available retrievers with optional pagination support. |
| `GRIPTAPE_LIST_RULES` | List Rules | Tool to list all rules in Griptape Cloud with optional pagination and filtering. Use when you need to retrieve available rules and their details. |
| `GRIPTAPE_LIST_SECRETS` | List Secrets | Tool to list all secrets in Griptape Cloud. Use to retrieve available secrets with optional pagination. |
| `GRIPTAPE_LIST_STRUCTURE_DEPLOYMENTS` | List Structure Deployments | Tool to list all deployments for a specific structure. Use when you need to retrieve deployment history and status for a structure in Griptape Cloud. |
| `GRIPTAPE_LIST_STRUCTURE_RUNS` | List Structure Runs | Tool to list all runs for a specific structure with optional pagination and status filtering. Use when you need to retrieve historical execution runs for a structure. |
| `GRIPTAPE_LIST_STRUCTURES` | List Structures | Tool to list all structures in Griptape Cloud. Use to retrieve available structures with optional pagination support. |
| `GRIPTAPE_LIST_THREAD_MESSAGES` | List Thread Messages | Tool to list all messages in a specific thread. Use when you need to retrieve the conversation history or all messages from a thread in Griptape Cloud. Supports pagination for threads with many messages. |
| `GRIPTAPE_LIST_THREADS` | List Threads | Tool to list all threads. Use to retrieve available conversation threads in Griptape Cloud with optional filters and pagination. |
| `GRIPTAPE_LIST_TOOL_DEPLOYMENTS` | List Tool Deployments | Tool to list all deployments for a specific tool. Use when you need to retrieve deployment history and status for a tool in Griptape Cloud. |
| `GRIPTAPE_LIST_TOOL_RUNS` | List Tool Runs | Tool to list all runs for a specific tool with optional pagination and status filtering. Use when you need to retrieve historical execution runs for a tool. |
| `GRIPTAPE_LIST_USERS` | List Users | Tool to list all users in Griptape Cloud. Use after authenticating to retrieve available users. |
| `GRIPTAPE_QUERY_KNOWLEDGE_BASE` | Query knowledge base | Performs semantic search against a Griptape Cloud knowledge base using natural language. Returns matching entries with similarity scores and metadata. Use this when you need to retrieve raw vector search results from a knowledge base. For a higher-level natural language answer, use the Search Knowledge Base action instead. |
| `GRIPTAPE_QUERY_RETRIEVER` | Query Retriever | Tool to query a retriever in Griptape Cloud with a natural-language query. Use when you need to retrieve information using a configured retriever, which may include reranking and multi-knowledge-base search capabilities. |
| `GRIPTAPE_RULESET_CREATION` | Ruleset Creation | Creates a new ruleset in Griptape Cloud. Rulesets are containers for rules that define behavioral guidelines for AI assistants. After creation, you can add rules to the ruleset and attach it to assistants to control their behavior. |
| `GRIPTAPE_SEARCH_KNOWLEDGE_BASE` | Search Knowledge Base | Searches a Griptape Cloud Knowledge Base with a natural-language query and returns a synthesized answer. Use this tool when you need to: - Retrieve information from a specific knowledge base using natural language - Get AI-synthesized answers based on documents stored in a knowledge base - Query company documentation, FAQs, or other indexed content Prerequisites: You need a valid Knowledge Base ID, which can be found in the Griptape Cloud console. Example queries: - "What is the refund policy?" - "How do I reset my password?" - "What are the supported file formats?" |
| `GRIPTAPE_TOOL_CREATION` | Create Tool | Create a new tool resource in Griptape Cloud. Use this to register a new tool that can be configured and deployed later. The tool code can be added via the Griptape Cloud console after creation. |
| `GRIPTAPE_TOOL_DEPLOYMENT_STATUS_RETRIEVAL` | Get Tool Deployment Status | Tool to retrieve status of a specific tool deployment. Use after creating a deployment to poll its progress. |
| `GRIPTAPE_TOOL_LISTING` | List Tools | Tool to list all tools. Use when you need to discover available tools and their IDs in Griptape Cloud. |
| `GRIPTAPE_UPDATE_ASSISTANT` | Update Assistant | Tool to update an existing assistant's configuration. Use when you need to modify an assistant's name, description, model, or attached resources like knowledge bases, rulesets, structures, or tools. |
| `GRIPTAPE_UPDATE_BUCKET` | Update Bucket | Tool to update a bucket's properties by its ID. Use when you need to modify bucket details such as the name in Griptape Cloud. |
| `GRIPTAPE_UPDATE_DATA_CONNECTOR` | Update Data Connector | Tool to update a data connector's configuration in Griptape Cloud. Use when you need to modify an existing data connector's name, description, schedule, or configuration settings. |
| `GRIPTAPE_UPDATE_FUNCTION` | Update Function | Tool to update an existing function's configuration. Use when you need to modify a function's name, description, code configuration, environment variables, or configuration file path. |
| `GRIPTAPE_UPDATE_INTEGRATION` | Update Integration | Tool to update an existing integration's configuration. Use when you need to modify an integration's name, description, type, configuration, or associated resources like assistants and structures. |
| `GRIPTAPE_UPDATE_KNOWLEDGE_BASE` | Update Knowledge Base | Tool to update a knowledge base's configuration in Griptape Cloud. Use when you need to modify a knowledge base's type, config, description, name, embedding model, or other properties. |
| `GRIPTAPE_UPDATE_LIBRARY` | Update Library | Tool to update an existing library's configuration in Griptape Cloud. Use when you need to modify a library's name, description, data connectors, or knowledge base configurations. |
| `GRIPTAPE_UPDATE_MESSAGE` | Update Message | Tool to update a message's input, output, and metadata by its ID. Use when you need to modify message content or associated metadata in Griptape Cloud. |
| `GRIPTAPE_UPDATE_MODEL` | Update Model Configuration | Tool to update a model configuration's properties by its ID. Use when you need to modify model details such as name, description, type, authentication settings, or activation status in Griptape Cloud. |
| `GRIPTAPE_UPDATE_MODEL_AUTH_CONFIG` | Update Model Auth Config | Tool to update an existing model auth config's properties. Use when you need to modify a model authentication configuration's name, API key secret, base URL, or additional kwargs in Griptape Cloud. |
| `GRIPTAPE_UPDATE_ORGANIZATION` | Update Organization | Tool to update an organization's properties by its ID. Use when you need to modify organization details such as the name or model configuration settings in Griptape Cloud. |
| `GRIPTAPE_UPDATE_RETRIEVER` | Update Retriever | Tool to update an existing retriever's configuration in Griptape Cloud. Use when you need to modify a retriever's name, description, or associated retriever components. |
| `GRIPTAPE_UPDATE_RETRIEVER_COMPONENT` | Update Retriever Component | Tool to update a retriever component's configuration by its ID. Use when you need to modify properties such as name, description, type, or configuration of a retriever component in Griptape Cloud. |
| `GRIPTAPE_UPDATE_RULE` | Update Rule | Tool to update an existing rule's configuration. Use when you need to modify a rule's name, content, or metadata. |
| `GRIPTAPE_UPDATE_RULESET` | Update Ruleset | Tool to update an existing ruleset's configuration. Use when you need to modify a ruleset's name, description, alias, rules, or metadata. |
| `GRIPTAPE_UPDATE_SECRET` | Update Secret | Tool to update a secret's properties by its ID. Use when you need to modify secret details such as the name or value in Griptape Cloud. |
| `GRIPTAPE_UPDATE_STRUCTURE` | Update Structure | Tool to update an existing structure's configuration. Use when you need to modify a structure's name, description, code configuration, environment variables, or webhook settings. |
| `GRIPTAPE_UPDATE_THREAD` | Update Thread | Tool to update an existing thread's configuration. Use when you need to modify a thread's name, alias, metadata, or messages in Griptape Cloud. |
| `GRIPTAPE_UPDATE_TOOL` | Update Tool | Tool to update an existing tool's configuration. Use when you need to modify a tool's name, description, code configuration, environment variables, or configuration file path. |

## Supported Triggers

None listed.

## Creating MCP Server - Stand-alone vs Composio SDK

The Griptape MCP server is an implementation of the Model Context Protocol that connects your AI agent to Griptape. It provides structured and secure access so your agent can perform Griptape operations on your behalf through a secure, permission-based interface.
With Composio's managed implementation, you don't have to create your own developer app. For production, if you're building an end product, we recommend using your own credentials. The managed server helps you prototype fast and go from 0-1 faster.

## Step-by-step Guide

### 1. Prerequisites

Before you begin, make sure you have:
- Node.js and npm installed
- A Composio account with API key
- An OpenAI API key

### 1. Getting API Keys for OpenAI and Composio

OpenAI API Key
- Go to the [OpenAI dashboard](https://platform.openai.com/settings/organization/api-keys) and create an API key. You'll need credits to use the models, or you can connect to another model provider.
- Keep the API key safe.
Composio API Key
- Log in to the [Composio dashboard](https://dashboard.composio.dev?utm_source=toolkits&utm_medium=framework_docs).
- Navigate to your API settings and generate a new API key.
- Store this key securely as you'll need it for authentication.

### 2. Install required dependencies

First, install the necessary packages for your project.
What you're installing:
- @ai-sdk/openai: Vercel AI SDK's OpenAI provider
- @ai-sdk/mcp: MCP client for Vercel AI SDK
- @composio/core: Composio SDK for tool integration
- ai: Core Vercel AI SDK
- dotenv: Environment variable management
```bash
npm install @ai-sdk/openai @ai-sdk/mcp @composio/core ai dotenv
```

### 3. Set up environment variables

Create a .env file in your project root.
What's needed:
- OPENAI_API_KEY: Your OpenAI API key for GPT model access
- COMPOSIO_API_KEY: Your Composio API key for tool access
- COMPOSIO_USER_ID: A unique identifier for the user session
```bash
OPENAI_API_KEY=your_openai_api_key_here
COMPOSIO_API_KEY=your_composio_api_key_here
COMPOSIO_USER_ID=your_user_id_here
```

### 4. Import required modules and validate environment

What's happening:
- We're importing all necessary libraries including Vercel AI SDK's OpenAI provider and Composio
- The dotenv/config import automatically loads environment variables
- The MCP client import enables connection to Composio's tool server
```typescript
import "dotenv/config";
import { openai } from "@ai-sdk/openai";
import { Composio } from "@composio/core";
import * as readline from "readline";
import { streamText, type ModelMessage, stepCountIs } from "ai";
import { createMCPClient } from "@ai-sdk/mcp";

const composioAPIKey = process.env.COMPOSIO_API_KEY;
const composioUserID = process.env.COMPOSIO_USER_ID;

if (!process.env.OPENAI_API_KEY) throw new Error("OPENAI_API_KEY is not set");
if (!composioAPIKey) throw new Error("COMPOSIO_API_KEY is not set");
if (!composioUserID) throw new Error("COMPOSIO_USER_ID is not set");

const composio = new Composio({
  apiKey: composioAPIKey,
});
```

### 5. Create Tool Router session and initialize MCP client

What's happening:
- We're creating a Tool Router session that gives your agent access to Griptape tools
- The create method takes the user ID and specifies which toolkits should be available
- The returned mcp object contains the URL and authentication headers needed to connect to the MCP server
- This session provides access to all Griptape-related tools through the MCP protocol
```typescript
async function main() {
  // Create a tool router session for the user
  const session = await composio.create(composioUserID!, {
    toolkits: ["griptape"],
  });

  const mcpUrl = session.mcp.url;
```

### 6. Connect to MCP server and retrieve tools

What's happening:
- We're creating an MCP client that connects to our Composio Tool Router session via HTTP
- The mcp.url provides the endpoint, and mcp.headers contains authentication credentials
- The type: "http" is important - Composio requires HTTP transport
- tools() retrieves all available Griptape tools that the agent can use
```typescript
const mcpClient = await createMCPClient({
  transport: {
    type: "http",
    url: mcpUrl,
    headers: session.mcp.headers, // Authentication headers for the Composio MCP server
  },
});

const tools = await mcpClient.tools();
```

### 7. Initialize conversation and CLI interface

What's happening:
- We initialize an empty messages array to maintain conversation history
- A readline interface is created to accept user input from the command line
- Instructions are displayed to guide the user on how to interact with the agent
```typescript
let messages: ModelMessage[] = [];

console.log("Chat started! Type 'exit' or 'quit' to end the conversation.\n");
console.log(
  "Ask any questions related to griptape, like summarize my last 5 emails, send an email, etc... :)))\n",
);

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
  prompt: "> ",
});

rl.prompt();
```

### 8. Handle user input and stream responses with real-time tool feedback

What's happening:
- We use streamText instead of generateText to stream responses in real-time
- toolChoice: "auto" allows the model to decide when to use Griptape tools
- stopWhen: stepCountIs(10) allows up to 10 steps for complex multi-tool operations
- onStepFinish callback displays which tools are being used in real-time
- We iterate through the text stream to create a typewriter effect as the agent responds
- The complete response is added to conversation history to maintain context
- Errors are caught and displayed with helpful retry suggestions
```typescript
rl.on("line", async (userInput: string) => {
  const trimmedInput = userInput.trim();

  if (["exit", "quit", "bye"].includes(trimmedInput.toLowerCase())) {
    console.log("\nGoodbye!");
    rl.close();
    process.exit(0);
  }

  if (!trimmedInput) {
    rl.prompt();
    return;
  }

  messages.push({ role: "user", content: trimmedInput });
  console.log("\nAgent is thinking...\n");

  try {
    const stream = streamText({
      model: openai("gpt-5"),
      messages,
      tools,
      toolChoice: "auto",
      stopWhen: stepCountIs(10),
      onStepFinish: (step) => {
        for (const toolCall of step.toolCalls) {
          console.log(`[Using tool: ${toolCall.toolName}]`);
          }
          if (step.toolCalls.length > 0) {
            console.log(""); // Add space after tool calls
          }
        },
      });

      for await (const chunk of stream.textStream) {
        process.stdout.write(chunk);
      }

      console.log("\n\n---\n");

      // Get final result for message history
      const response = await stream.response;
      if (response?.messages?.length) {
        messages.push(...response.messages);
      }
    } catch (error) {
      console.error("\nAn error occurred while talking to the agent:");
      console.error(error);
      console.log(
        "\nYou can try again or restart the app if it keeps happening.\n",
      );
    } finally {
      rl.prompt();
    }
  });

  rl.on("close", async () => {
    await mcpClient.close();
    console.log("\n👋 Session ended.");
    process.exit(0);
  });
}

main().catch((err) => {
  console.error("Fatal error:", err);
  process.exit(1);
});
```

## Complete Code

```typescript
import "dotenv/config";
import { openai } from "@ai-sdk/openai";
import { Composio } from "@composio/core";
import * as readline from "readline";
import { streamText, type ModelMessage, stepCountIs } from "ai";
import { createMCPClient } from "@ai-sdk/mcp";

const composioAPIKey = process.env.COMPOSIO_API_KEY;
const composioUserID = process.env.COMPOSIO_USER_ID;

if (!process.env.OPENAI_API_KEY) throw new Error("OPENAI_API_KEY is not set");
if (!composioAPIKey) throw new Error("COMPOSIO_API_KEY is not set");
if (!composioUserID) throw new Error("COMPOSIO_USER_ID is not set");

const composio = new Composio({
  apiKey: composioAPIKey,
});

async function main() {
  // Create a tool router session for the user
  const session = await composio.create(composioUserID!, {
    toolkits: ["griptape"],
  });

  const mcpUrl = session.mcp.url;

  const mcpClient = await createMCPClient({
    transport: {
      type: "http",
      url: mcpUrl,
      headers: session.mcp.headers, // Authentication headers for the Composio MCP server
    },
  });

  const tools = await mcpClient.tools();

  let messages: ModelMessage[] = [];

  console.log("Chat started! Type 'exit' or 'quit' to end the conversation.\n");
  console.log(
    "Ask any questions related to griptape, like summarize my last 5 emails, send an email, etc... :)))\n",
  );

  const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
    prompt: "> ",
  });

  rl.prompt();

  rl.on("line", async (userInput: string) => {
    const trimmedInput = userInput.trim();

    if (["exit", "quit", "bye"].includes(trimmedInput.toLowerCase())) {
      console.log("\nGoodbye!");
      rl.close();
      process.exit(0);
    }

    if (!trimmedInput) {
      rl.prompt();
      return;
    }

    messages.push({ role: "user", content: trimmedInput });
    console.log("\nAgent is thinking...\n");

    try {
      const stream = streamText({
        model: openai("gpt-5"),
        messages,
        tools,
        toolChoice: "auto",
        stopWhen: stepCountIs(10),
        onStepFinish: (step) => {
          for (const toolCall of step.toolCalls) {
            console.log(`[Using tool: ${toolCall.toolName}]`);
          }
          if (step.toolCalls.length > 0) {
            console.log(""); // Add space after tool calls
          }
        },
      });

      for await (const chunk of stream.textStream) {
        process.stdout.write(chunk);
      }

      console.log("\n\n---\n");

      // Get final result for message history
      const response = await stream.response;
      if (response?.messages?.length) {
        messages.push(...response.messages);
      }
    } catch (error) {
      console.error("\nAn error occurred while talking to the agent:");
      console.error(error);
      console.log(
        "\nYou can try again or restart the app if it keeps happening.\n",
      );
    } finally {
      rl.prompt();
    }
  });

  rl.on("close", async () => {
    await mcpClient.close();
    console.log("\n👋 Session ended.");
    process.exit(0);
  });
}

main().catch((err) => {
  console.error("Fatal error:", err);
  process.exit(1);
});
```

## Conclusion

You've successfully built a Griptape agent using the Vercel AI SDK with streaming capabilities! This implementation provides a powerful foundation for building AI applications with natural language interfaces and real-time feedback.
Key features of this implementation:
- Real-time streaming responses for a better user experience with typewriter effect
- Live tool execution feedback showing which tools are being used as the agent works
- Dynamic tool loading through Composio's Tool Router with secure authentication
- Multi-step tool execution with configurable step limits (up to 10 steps)
- Comprehensive error handling for robust agent execution
- Conversation history maintenance for context-aware responses
You can extend this further by adding custom error handling, implementing specific business logic, or integrating additional Composio toolkits to create multi-app workflows.

## How to build Griptape MCP Agent with another framework

- [OpenAI Agents SDK](https://composio.dev/toolkits/griptape/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/griptape/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/griptape/framework/claude-code)
- [Claude Cowork](https://composio.dev/toolkits/griptape/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/griptape/framework/codex)
- [OpenClaw](https://composio.dev/toolkits/griptape/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/griptape/framework/hermes-agent)
- [CLI](https://composio.dev/toolkits/griptape/framework/cli)
- [Google ADK](https://composio.dev/toolkits/griptape/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/griptape/framework/langchain)
- [Mastra AI](https://composio.dev/toolkits/griptape/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/griptape/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/griptape/framework/crew-ai)

## Related Toolkits

- [Composio](https://composio.dev/toolkits/composio) - Composio is an integration platform that connects AI agents with hundreds of business tools. It streamlines authentication and lets you trigger actions across services—no custom code needed.
- [Composio search](https://composio.dev/toolkits/composio_search) - Composio search is a unified web search toolkit spanning travel, e-commerce, news, financial markets, images, and more. It lets you and your apps tap into up-to-date web data from a single, easy-to-integrate service.
- [Perplexityai](https://composio.dev/toolkits/perplexityai) - Perplexityai delivers natural, conversational AI models for generating human-like text. Instantly get context-aware, high-quality responses for chat, search, or complex workflows.
- [Browser tool](https://composio.dev/toolkits/browser_tool) - Browser tool is a virtual browser integration that lets AI agents interact with the web programmatically. It enables automated browsing, scraping, and action-taking from any AI workflow.
- [Ai ml api](https://composio.dev/toolkits/ai_ml_api) - Ai ml api is a suite of AI/ML models for natural language and image tasks. It provides fast, scalable access to advanced AI capabilities for your apps and workflows.
- [Aivoov](https://composio.dev/toolkits/aivoov) - Aivoov is an AI-powered text-to-speech platform offering 1,000+ voices in over 150 languages. Instantly turn written content into natural, human-like audio for any application.
- [All images ai](https://composio.dev/toolkits/all_images_ai) - All-Images.ai is an AI-powered image generation and management platform. It helps you create, search, and organize images effortlessly with advanced AI capabilities.
- [Anthropic administrator](https://composio.dev/toolkits/anthropic_administrator) - Anthropic administrator is an API for managing Anthropic organizational resources like members, workspaces, and API keys. It helps you automate admin tasks and streamline resource management across your Anthropic organization.
- [Api labz](https://composio.dev/toolkits/api_labz) - Api labz is a platform offering a suite of AI-driven APIs and workflow tools. It helps developers automate tasks and build smarter, more efficient applications.
- [Apipie ai](https://composio.dev/toolkits/apipie_ai) - Apipie ai is an AI model aggregator offering a single API for accessing top AI models from multiple providers. It helps developers build cost-efficient, latency-optimized AI solutions without juggling multiple integrations.
- [Astica ai](https://composio.dev/toolkits/astica_ai) - Astica ai provides APIs for computer vision, NLP, and voice synthesis. Integrate advanced AI features into your app with a single API key.
- [Bigml](https://composio.dev/toolkits/bigml) - BigML is a machine learning platform that lets you build, train, and deploy predictive models from your data. Its intuitive interface and robust API make machine learning accessible and efficient.
- [Botbaba](https://composio.dev/toolkits/botbaba) - Botbaba is a platform for building, managing, and deploying conversational AI chatbots across messaging channels. It streamlines chatbot automation, making it easier to integrate AI into customer interactions.
- [Botpress](https://composio.dev/toolkits/botpress) - Botpress is an open-source platform for building, deploying, and managing chatbots. It helps teams automate conversations and deliver rich, interactive messaging experiences.
- [Chatbotkit](https://composio.dev/toolkits/chatbotkit) - Chatbotkit is a platform for building and managing AI-powered chatbots using robust APIs and SDKs. It lets you easily add conversational AI to your apps for better user engagement.
- [Cody](https://composio.dev/toolkits/cody) - Cody is an AI assistant built for businesses, trained on your company's knowledge and data. It delivers instant answers and insights, tailored for your team.
- [Context7 MCP](https://composio.dev/toolkits/context7_mcp) - Context7 MCP delivers live, version-specific code docs and examples right from the source. It helps developers and AI agents instantly retrieve authoritative programming info—no more out-of-date docs.
- [Customgpt](https://composio.dev/toolkits/customgpt) - CustomGPT.ai lets you build and deploy chatbots tailored to your own data and business needs. Get precise and context-aware AI conversations without writing code.
- [Datarobot](https://composio.dev/toolkits/datarobot) - Datarobot is a machine learning platform that automates model development, deployment, and monitoring. It empowers organizations to quickly gain predictive insights from large datasets.
- [Deepgram](https://composio.dev/toolkits/deepgram) - Deepgram is an AI-powered speech recognition platform for accurate audio transcription and understanding. It enables fast, scalable speech-to-text with advanced audio intelligence features.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and Griptape MCP?

With a standalone Griptape MCP server, the agents and LLMs can only access a fixed set of Griptape tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Griptape and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with Vercel AI SDK v6?

Yes, you can. Vercel AI SDK v6 fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Griptape tools.

### Can I manage the permissions and scopes for Griptape while using Tool Router?

Yes, absolutely. You can configure which Griptape scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Griptape data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
