# Tools Reference
Complete reference for all Chipp MCP Server tools
This guide documents all 78 tools available in the Chipp MCP Server, organized by category.
## Quick Reference
Jump to a category or use this table to find tools quickly:
| Category | Tools | Description |
|----------|-------|-------------|
| [Help](#help) | 1 | Search documentation |
| [Apps](#apps) | 6 | Create, read, update, delete applications |
| [Config](#configuration) | 7 | System prompts, models, settings, branding |
| [Knowledge](#knowledge-sources) | 6 | Add URLs, documents, manage RAG sources |
| [Analytics](#analytics) | 14 | Usage data, conversations, metrics |
| [Tags](#tags) | 8 | Intent tagging and utterance generation |
| [Evals](#evaluations) | 8 | Quality testing and evaluation |
| [Custom Actions](#custom-actions) | 5 | API integrations |
| [MCP Integrations](#mcp-integrations) | 5 | External MCP servers |
| [Deployments](#deployments) | 8 | Slack, WhatsApp, Email, Voice |
| [Workspaces](#workspaces) | 6 | Workspace and billing info |
| [Prompt Engineering](#prompt-engineering) | 7 | AI-assisted prompt improvement |
---
## Help
Tools for finding information about the MCP server itself.
### search_documentation
Search the MCP server documentation to find information about tools, authentication, setup, and best practices.
**Scope:** None (public - no authentication required)
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| query | string | Yes | Search query (3-500 chars) |
| limit | number | No | Max results (1-10, default 5) |
| section | string | No | Filter by section (setup, authentication, rate-limits, tools-reference, workflows) |
**Example:**
```
"Search docs for how to authenticate"
"Search documentation for rate limits"
"Find docs about creating apps"
```
This tool doesn't require authentication, making it useful for onboarding new users who haven't connected yet.
---
## Apps
Core CRUD operations for managing Chipp applications.
### list_apps
List all applications accessible to the authenticated user.
**Scope:** `apps:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| workspaceId | number | No | Filter to a specific workspace |
| limit | number | No | Max results (1-100, default 20) |
| offset | number | No | Pagination offset |
| includeDeleted | boolean | No | Include soft-deleted apps |
**Example:**
```
"List all my Chipp apps"
"Show apps in workspace 42"
```
---
### get_app
Get detailed information about a specific application.
**Scope:** `apps:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
**Example:**
```
"Get details for app 123"
"Show me the configuration of my FAQ bot"
```
---
### create_app
Create a new application in a workspace.
**Scope:** `apps:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| name | string | Yes | App name (1-100 chars) |
| workspaceId | number | Yes | Workspace to create in |
| description | string | No | App description (max 2000 chars) |
| systemPrompt | string | No | Initial system prompt (max 10000 chars) |
| model | string | No | Model ID (default: GPT_4_1) |
**Example:**
```
"Create a customer support bot called HelpDesk in workspace 5"
"Make a new app named FAQ Bot with a helpful assistant prompt"
```
---
### update_app
Update an existing application's properties.
**Scope:** `apps:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| name | string | No | New name |
| description | string | No | New description |
| systemPrompt | string | No | New system prompt |
| model | string | No | New model ID |
| startingMessage | string | No | Initial bot message |
**Example:**
```
"Rename app 123 to 'Support Bot v2'"
"Update the system prompt for my FAQ app to be more friendly"
```
---
### delete_app
Soft-delete an application.
**Scope:** `apps:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
**Example:**
```
"Delete app 123"
"Remove the test app I created"
```
---
### chat_with_app
Send a message to an application and get a response. Useful for testing.
**Scope:** `apps:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| message | string | Yes | Message to send |
| sessionId | string | No | Continue existing session |
Use this tool to test your apps after making changes. It's faster than switching to the web UI.
**Example:**
```
"Test my FAQ bot with the question 'What are your hours?'"
"Send 'hello' to app 123 to check if it's working"
```
---
## Configuration
Manage application settings, system prompts, and branding.
### get_system_prompt
Get the system prompt for an application.
**Scope:** `apps:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
---
### update_system_prompt
Update an application's system prompt.
**Scope:** `apps:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| prompt | string | Yes | New system prompt |
Changes take effect immediately for new conversations. Use `chat_with_app` to test before deploying to users.
---
### get_model
Get the AI model configuration for an application.
**Scope:** `apps:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
---
### update_model
Change the AI model for an application.
**Scope:** `apps:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| model | string | Yes | Model ID (e.g., GPT_4_1, CLAUDE_3_5_SONNET) |
---
### get_settings
Get detailed settings including RAG configuration.
**Scope:** `apps:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
---
### update_settings
Update application settings including RAG options.
**Scope:** `apps:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| temperature | number | No | Model temperature (0-2) |
| maxTokens | number | No | Max response tokens |
| enableRag | boolean | No | Enable/disable RAG |
| topK | number | No | Number of RAG chunks to retrieve |
---
### update_branding
Update visual branding for the application.
**Scope:** `apps:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| primaryColor | string | No | Hex color code |
| logoUrl | string | No | URL to logo image |
| chatBackgroundUrl | string | No | Background image URL |
---
## Knowledge Sources
Manage RAG (Retrieval-Augmented Generation) knowledge bases.
### list_knowledge_sources
List all knowledge sources for an application.
**Scope:** `knowledge:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| status | string | No | Filter by status (PENDING, PROCESSING, COMPLETED, FAILED) |
---
### get_knowledge_source
Get details about a specific knowledge source.
**Scope:** `knowledge:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| sourceId | number | Yes | Knowledge source ID |
---
### add_url_source
Add a URL as a knowledge source. Automatically detects YouTube, Instagram, TikTok, and regular web pages.
**Scope:** `knowledge:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| url | string | Yes | URL to crawl |
| crawlDepth | number | No | How many levels deep to crawl (1-3) |
| name | string | No | Custom name for the source |
**Smart Detection:** YouTube URLs extract transcripts, social media extracts content, regular URLs are crawled.
**Example:**
```
"Add https://docs.example.com to my FAQ app with crawl depth 2"
"Add this YouTube video to my training bot's knowledge base"
```
---
### add_document_source
Upload a document as a knowledge source.
**Scope:** `knowledge:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| content | string | Yes | Base64-encoded file content |
| filename | string | Yes | Original filename with extension |
| mimeType | string | No | MIME type of the file |
**Supported formats:** PDF, DOCX, TXT, MD, CSV, JSON, HTML, PPTX, XLSX, code files (JS, TS, PY, etc.)
---
### delete_knowledge_source
Remove a knowledge source from an application.
**Scope:** `knowledge:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| sourceId | number | Yes | Knowledge source ID |
---
### refresh_knowledge_source
Re-crawl or re-process a knowledge source to update its content.
**Scope:** `knowledge:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| sourceId | number | Yes | Knowledge source ID |
---
## Analytics
Access usage data, conversations, and metrics.
### get_app_analytics
Get summary analytics for an application.
**Scope:** `analytics:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| period | string | No | Time period (7d, 30d, 90d, all) |
**Returns:** Message count, conversation count, unique users, satisfaction scores.
---
### search_conversations
Search conversations with filters.
**Scope:** `analytics:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| query | string | No | Search text in messages |
| startDate | string | No | ISO date string |
| endDate | string | No | ISO date string |
| limit | number | No | Max results (default 20) |
| offset | number | No | Pagination offset |
**Example:**
```
"Find conversations about refunds in my support bot"
"Show recent conversations from the last week"
```
---
### get_conversation
Get a specific conversation with all messages.
**Scope:** `analytics:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| conversationId | string | Yes | Conversation/session ID |
---
### get_top_queries
Get the most common user queries.
**Scope:** `analytics:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| limit | number | No | Number of queries (default 20) |
| period | string | No | Time period |
---
### search_messages
Search individual messages across conversations.
**Scope:** `analytics:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| query | string | Yes | Search text |
| limit | number | No | Max results |
---
### export_conversations
Export conversations to JSON format.
**Scope:** `analytics:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| startDate | string | No | Start date filter |
| endDate | string | No | End date filter |
| format | string | No | Export format (json) |
---
### get_tag_analytics
Get analytics for message tagging.
**Scope:** `analytics:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| period | string | No | Time period |
---
### get_model_usage
Get model usage breakdown by model type.
**Scope:** `analytics:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| period | string | No | Time period |
---
### get_moderation_stats
Get content moderation statistics.
**Scope:** `analytics:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
---
### get_user_memories
Get extracted user memories for an application.
**Scope:** `analytics:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| limit | number | No | Max results |
---
### get_file_analytics
Get statistics about file uploads and usage.
**Scope:** `analytics:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
---
### get_popular_apps
Get most popular apps by usage.
**Scope:** `analytics:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| limit | number | No | Number of apps |
---
## Tags
Manage intent tags for message classification and automated responses.
### list_tags
List all tags for an application.
**Scope:** `apps:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
---
### get_tag
Get details for a specific tag including utterances.
**Scope:** `apps:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| tagId | string | Yes | Tag ID |
---
### create_tag
Create a new intent tag.
**Scope:** `apps:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| name | string | Yes | Tag name |
| description | string | No | Tag description |
| utterances | string[] | No | Example phrases that match this tag |
| action | object | No | Action to take when tag matches |
**Action types:**
- `staticText`: Replace AI response with fixed text
- `freeze`: Stop conversation flow
- `notification`: Send webhook or email alert
**Example:**
```
"Create a tag called 'pricing' for my sales bot with utterances like 'how much does it cost'"
```
---
### update_tag
Update an existing tag.
**Scope:** `apps:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| tagId | string | Yes | Tag ID |
| name | string | No | New name |
| utterances | string[] | No | New utterances |
| action | object | No | New action |
---
### delete_tag
Delete a tag.
**Scope:** `apps:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| tagId | string | Yes | Tag ID |
---
### list_tag_instances
List messages that matched a specific tag.
**Scope:** `analytics:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| tagId | string | Yes | Tag ID |
| limit | number | No | Max results |
---
### remove_tag_instance
Remove a tag match from a message (false positive correction).
**Scope:** `apps:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| instanceId | string | Yes | Tag instance ID |
---
### generate_utterances
Use AI to generate training utterances for a tag.
**Scope:** `apps:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| prompt | string | Yes | Description of the intent |
| count | number | No | Number of utterances (1-500, default 200) |
| style | string | No | conversational, formal, or mixed |
| domain | string | No | Context (e.g., "e-commerce", "healthcare") |
| existingUtterances | string[] | No | Utterances to avoid duplicating |
| tagId | string | No | Save directly to this tag |
Generate 200+ utterances for better tag matching accuracy. Specify a domain for more relevant examples.
**Example:**
```
"Generate 100 utterances for detecting pricing questions in an e-commerce context"
```
---
## Evaluations
Create and run quality tests for your applications.
### list_evals
List all evaluations for an application.
**Scope:** `apps:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
---
### get_eval
Get details for a specific evaluation.
**Scope:** `apps:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| evalId | string | Yes | Evaluation ID |
---
### create_eval
Create a new evaluation from a conversation.
**Scope:** `apps:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| name | string | Yes | Evaluation name |
| chatSessionId | string | No | Create from existing conversation |
| testCases | object[] | No | Manual test cases |
**Test case format:**
```json
{
"input": "What are your hours?",
"expectedOutput": "We're open 9-5 Monday through Friday",
"criteria": ["mentions hours", "includes days"]
}
```
---
### update_eval
Update an existing evaluation.
**Scope:** `apps:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| evalId | string | Yes | Evaluation ID |
| name | string | No | New name |
| testCases | object[] | No | Updated test cases |
---
### delete_eval
Delete an evaluation.
**Scope:** `apps:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| evalId | string | Yes | Evaluation ID |
---
### run_eval
Execute an evaluation and get results.
**Scope:** `apps:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| evalId | string | Yes | Evaluation ID |
| format | string | No | Output format: "json" or "terminal" |
Use `format: "terminal"` for beautiful ASCII-formatted results in Claude Code:
```
┌─────────────────────────────────────────┐
│ Evaluation Results │
├─────────────────────────────────────────┤
│ Pass Rate: ████████░░ 80% │
│ Avg Score: 0.85 │
└─────────────────────────────────────────┘
```
---
### list_eval_results
List past evaluation runs.
**Scope:** `apps:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| evalId | string | Yes | Evaluation ID |
| limit | number | No | Max results |
---
### get_eval_result
Get detailed results from a specific evaluation run.
**Scope:** `apps:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| resultId | string | Yes | Result ID |
---
## Custom Actions
Manage API integrations for your applications.
### list_custom_actions
List all custom actions for an application.
**Scope:** `actions:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
---
### get_custom_action
Get details for a specific custom action.
**Scope:** `actions:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| actionId | string | Yes | Action ID |
---
### create_custom_action
Create a new API integration.
**Scope:** `actions:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| name | string | Yes | Action name |
| description | string | Yes | What the action does |
| method | string | Yes | HTTP method (GET, POST, etc.) |
| url | string | Yes | API endpoint URL |
| headers | object | No | Request headers |
| bodyTemplate | string | No | Request body template |
| parameters | object[] | No | Input parameters |
Custom actions have complex schemas. See the [Custom Actions Guide](/docs/guides/custom-actions) for detailed examples.
---
### update_custom_action
Update an existing custom action.
**Scope:** `actions:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| actionId | string | Yes | Action ID |
| (other fields) | various | No | Fields to update |
---
### delete_custom_action
Delete a custom action.
**Scope:** `actions:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| actionId | string | Yes | Action ID |
---
## MCP Integrations
Connect external MCP servers to your applications.
### list_mcp_integrations
List all connected MCP servers for an application.
**Scope:** `actions:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
---
### get_mcp_integration
Get details about a connected MCP server.
**Scope:** `actions:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| integrationId | string | Yes | Integration ID |
---
### connect_mcp_server
Connect an external MCP server to an application.
**Scope:** `actions:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| name | string | Yes | Display name |
| url | string | Yes | MCP server URL |
| apiKey | string | No | Authentication key |
---
### update_mcp_integration_tools
Enable or disable specific tools from a connected MCP server.
**Scope:** `actions:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| integrationId | string | Yes | Integration ID |
| enabledTools | string[] | Yes | List of tool names to enable |
---
### disconnect_mcp_server
Remove an MCP server connection.
**Scope:** `actions:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| integrationId | string | Yes | Integration ID |
---
## Deployments
Manage multi-channel deployments (Slack, WhatsApp, Email, Voice).
### list_slack_deployments
List Slack workspace connections.
**Scope:** `apps:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
---
### get_slack_deployment
Get details about a Slack deployment.
**Scope:** `apps:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| deploymentId | string | Yes | Deployment ID |
---
### disconnect_slack_deployment
Remove a Slack connection.
**Scope:** `apps:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| deploymentId | string | Yes | Deployment ID |
---
### get_whatsapp_deployment
Get WhatsApp business configuration.
**Scope:** `apps:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
---
### get_voice_config
Get voice agent configuration.
**Scope:** `apps:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
---
### update_voice_config
Update voice agent settings.
**Scope:** `apps:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| voiceId | string | No | Voice model ID |
| language | string | No | Language code |
| telephonyEnabled | boolean | No | Enable phone number |
---
### get_email_deployment
Get email channel configuration.
**Scope:** `apps:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
---
### update_email_deployment
Update email channel settings.
**Scope:** `apps:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| enabled | boolean | No | Enable/disable email |
| fromName | string | No | Sender display name |
---
## Workspaces
Manage workspaces, members, and billing information.
### list_workspaces
List all workspaces you have access to.
**Scope:** `workspace:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| (none) | | | |
---
### get_workspace
Get details about a specific workspace.
**Scope:** `workspace:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| workspaceId | number | Yes | Workspace ID |
---
### list_workspace_members
List members of a workspace.
**Scope:** `workspace:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| workspaceId | number | Yes | Workspace ID |
---
### get_subscription
Get subscription details for an organization.
**Scope:** `billing:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| (none) | | | |
---
### get_credits
Get credit balance and usage.
**Scope:** `billing:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| (none) | | | |
---
### get_usage
Get detailed usage breakdown.
**Scope:** `billing:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| period | string | No | Time period |
---
## Prompt Engineering
AI-assisted tools for improving prompts and selecting models.
### improve_system_prompt
Use AI to improve an existing system prompt.
**Scope:** `apps:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| feedback | string | No | Specific feedback to incorporate |
| focus | string | No | Area to focus on (tone, clarity, etc.) |
These tools use Claude to analyze your app and suggest improvements.
---
### generate_system_prompt
Generate a new system prompt from a description.
**Scope:** `apps:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| description | string | Yes | What the app should do |
| tone | string | No | Desired tone (professional, friendly, etc.) |
| constraints | string[] | No | Things the app should avoid |
---
### list_suggestions
Get suggested improvements for an application.
**Scope:** `apps:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
---
### update_suggestions
Mark suggestions as applied or dismissed.
**Scope:** `apps:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| suggestionId | string | Yes | Suggestion ID |
| status | string | Yes | applied or dismissed |
---
### generate_suggestions
Generate new improvement suggestions.
**Scope:** `apps:write`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
---
### list_available_models
List all AI models available for use.
**Scope:** `apps:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| (none) | | | |
---
### recommend_model
Get AI-powered model recommendations for your use case.
**Scope:** `apps:read`
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| appId | number | Yes | Application ID |
| priority | string | No | cost, quality, or speed |
---
## Appendix
### Permission Scopes
| Scope | Description |
|-------|-------------|
| `apps:read` | Read app configurations |
| `apps:write` | Create, update, delete apps |
| `knowledge:read` | Read knowledge sources |
| `knowledge:write` | Manage knowledge sources |
| `actions:read` | Read custom actions |
| `actions:write` | Manage custom actions |
| `analytics:read` | Read analytics data |
| `workspace:read` | Read workspace info |
| `billing:read` | Read billing data |
| `*` | All permissions |
### Common Error Codes
| Code | Description | Resolution |
|------|-------------|------------|
| `UNAUTHORIZED` | Invalid or expired token | Re-authenticate |
| `FORBIDDEN` | Insufficient scope | Request additional scopes |
| `NOT_FOUND` | Resource doesn't exist | Check ID is correct |
| `RATE_LIMITED` | Too many requests | Wait and retry |
| `VALIDATION_ERROR` | Invalid parameters | Check parameter types/values |
---
## Next Steps
- [Common Workflows](/docs/guides/mcp/workflows) - Step-by-step examples
- [Rate Limits](/docs/guides/mcp/rate-limits) - Usage limits and best practices
- [Authentication](/docs/guides/mcp/authentication) - Token management