# Create MCP Configuration div strong 🔨 In Development — This section is still being developed and may change. Create a new MCP (Model Context Protocol) configuration that can be reused across multiple API requests. Configurations store connector settings, credentials, and access permissions. MCP configurations enable you to define connector settings once and reference them by ID in subsequent requests. Configurations can be private (user-only) or shared with specific users or your entire organization. #### Request Body **`name`** string required Human-readable name for the configuration. Used to identify the configuration in lists and logs. Example: `"Production Google Drive"`, `"Sales Team Slack"`. **`connectorId`** string required ID of the MCP connector to use. Available connectors: `google_drive`, `github`, `slack`, `notion`, `confluence`, `sharepoint`, `gmail`, `dropbox`. [See all connectors](/docs/documentation/personal-connectors/overview) **`configuration`** object required Connector-specific configuration settings. Structure varies by connector type. [View connector schemas](/docs/documentation/personal-connectors/mcp) details summary Show example configurations **Google Drive:** ```json { "folderId": "1a2b3c4d5e", "includeSubfolders": true, "mimeTypes": ["application/pdf", "application/vnd.google-apps.document"] } ``` **GitHub:** ```json { "repository": "acme/backend", "branch": "main", "paths": ["src/", "docs/"], "fileTypes": [".py", ".md"] } ``` **Slack:** ```json { "channels": ["#engineering", "#product"], "dateRange": "last_30_days", "includeThreads": true } ``` **`description`** string optional Optional description explaining the configuration's purpose. Useful for team collaboration. Example: `"Access to engineering documentation folder"`. **`shared`** boolean optional · Defaults to `false` Whether the configuration is shared with others. When `false`, only you can use it. When `true`, specify sharing permissions via `sharedWith`. **`sharedWith`** object optional Defines who can access this configuration. Only applicable when `shared` is `true`. details summary Show properties **`users`** array optional Array of user IDs to share with. Example: `["user_abc123", "user_xyz789"]`. **`teams`** array optional Array of team IDs to share with. Example: `["team_engineering", "team_product"]`. **`organization`** boolean optional · Defaults to `false` Share with entire organization. When `true`, all organization members can use this configuration. **`permissions`** string optional · Defaults to `read` Access level for shared users. Available values: `read` (view and use), `write` (modify settings), `admin` (manage sharing). **`metadata`** object optional Custom key-value pairs for tagging and filtering configurations. Example: `{"environment": "production", "team": "sales"}`. Google Drive ```bash curl https://api.freddy.aitronos.com/v1/mcp/configurations \ -H "Authorization: Bearer $FREDDY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Engineering Docs", "connectorId": "google_drive", "configuration": { "folderId": "1a2b3c4d5e", "includeSubfolders": true }, "description": "Access to engineering documentation" }' ``` ```python import requests response = requests.post( "https://api.freddy.aitronos.com/v1/mcp/configurations", headers={ "Authorization": f"Bearer {api_key}", "Content-Type": "application/json" }, json={ "name": "Engineering Docs", "connectorId": "google_drive", "configuration": { "folderId": "1a2b3c4d5e", "includeSubfolders": True }, "description": "Access to engineering documentation" } ) config = response.json() print(f"Created config: {config['id']}") ``` ```javascript const response = await fetch('https://api.freddy.aitronos.com/v1/mcp/configurations', { method: 'POST', headers: { 'Authorization': `Bearer ${apiKey}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ name: 'Engineering Docs', connectorId: 'google_drive', configuration: { folderId: '1a2b3c4d5e', includeSubfolders: true }, description: 'Access to engineering documentation' }) }); const config = await response.json(); console.log(`Created config: ${config.id}`); ``` Shared with Team ```bash curl https://api.freddy.aitronos.com/v1/mcp/configurations \ -H "Authorization: Bearer $FREDDY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Sales Team Slack", "connectorId": "slack", "configuration": { "channels": ["#sales", "#leads"], "dateRange": "last_7_days" }, "shared": true, "sharedWith": { "teams": ["team_sales"], "permissions": "read" } }' ``` ```python import requests response = requests.post( "https://api.freddy.aitronos.com/v1/mcp/configurations", headers={ "Authorization": f"Bearer {api_key}", "Content-Type": "application/json" }, json={ "name": "Sales Team Slack", "connectorId": "slack", "configuration": { "channels": ["#sales", "#leads"], "dateRange": "last_7_days" }, "shared": True, "sharedWith": { "teams": ["team_sales"], "permissions": "read" } } ) ``` ```javascript const response = await fetch('https://api.freddy.aitronos.com/v1/mcp/configurations', { method: 'POST', headers: { 'Authorization': `Bearer ${apiKey}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ name: 'Sales Team Slack', connectorId: 'slack', configuration: { channels: ['#sales', '#leads'], dateRange: 'last_7_days' }, shared: true, sharedWith: { teams: ['team_sales'], permissions: 'read' } }) }); ``` GitHub with Metadata ```bash curl https://api.freddy.aitronos.com/v1/mcp/configurations \ -H "Authorization: Bearer $FREDDY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Backend Repository", "connectorId": "github", "configuration": { "repository": "acme/backend", "branch": "main", "paths": ["src/", "docs/"] }, "metadata": { "environment": "production", "team": "engineering", "project": "api" } }' ``` ```python import requests response = requests.post( "https://api.freddy.aitronos.com/v1/mcp/configurations", headers={ "Authorization": f"Bearer {api_key}", "Content-Type": "application/json" }, json={ "name": "Backend Repository", "connectorId": "github", "configuration": { "repository": "acme/backend", "branch": "main", "paths": ["src/", "docs/"] }, "metadata": { "environment": "production", "team": "engineering", "project": "api" } } ) ``` ```javascript const response = await fetch('https://api.freddy.aitronos.com/v1/mcp/configurations', { method: 'POST', headers: { 'Authorization': `Bearer ${apiKey}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ name: 'Backend Repository', connectorId: 'github', configuration: { repository: 'acme/backend', branch: 'main', paths: ['src/', 'docs/'] }, metadata: { environment: 'production', team: 'engineering', project: 'api' } }) }); ``` ## Response 200 OK ```json { "id": "mcp_config_abc123", "object": "mcp.configuration", "name": "Engineering Docs", "connectorId": "google_drive", "configuration": { "folderId": "1a2b3c4d5e", "includeSubfolders": true }, "description": "Access to engineering documentation", "shared": false, "sharedWith": null, "metadata": {}, "createdAt": "2024-10-04T12:00:00Z", "updatedAt": "2024-10-04T12:00:00Z", "createdBy": "user_xyz789" } ``` Errors ```json { "error": { "type": "invalid_request_error", "message": "Invalid connectorId: invalid_connector", "code": "invalid_connector", "param": "connectorId" } } ``` ```json { "error": { "type": "authentication_error", "message": "Invalid API key", "code": "invalid_api_key" } } ``` ```json { "error": { "type": "permission_error", "message": "You don't have permission to share configurations with this team", "code": "insufficient_permissions" } } ```