# List Personal Connector Tools div strong 🔨 In Development — This section is still being developed and may change. Retrieve a list of all tools available from a specific personal connector configuration. These are the tools that AI assistants can use when this configuration is enabled. This endpoint returns an array of tool definitions from the MCP server associated with this configuration. Tool definitions include the tool name, description, input schema, and other metadata that helps AI models understand how to use them. #### Path Parameters **`config_id`** string required The ID of the personal connector configuration (e.g., `pconf_abc123`). #### Query Parameters **`forceRefresh`** boolean optional · Defaults to `false` If `true`, bypasses the cache and fetches fresh tool definitions from the MCP server. Use this if you suspect the cache is stale. List tools (cached) ```bash curl https://api.freddy.aitronos.com/v1/personal-connectors/configurations/pconf_abc123/tools \ -H "Authorization: Bearer $FREDDY_API_KEY" ``` ```python import requests import os api_key = os.environ.get("FREDDY_API_KEY") headers = {"Authorization": f"Bearer {api_key}"} response = requests.get( "https://api.freddy.aitronos.com/v1/personal-connectors/configurations/pconf_abc123/tools", headers=headers ) print(response.json()) ``` ```javascript const response = await fetch('https://api.freddy.aitronos.com/v1/personal-connectors/configurations/pconf_abc123/tools', { method: 'GET', headers: { 'Authorization': `Bearer ${process.env.FREDDY_API_KEY}` } }); const data = await response.json(); console.log(data); ``` Force refresh tools ```bash curl "https://api.freddy.aitronos.com/v1/personal-connectors/configurations/pconf_abc123/tools?forceRefresh=true" \ -H "Authorization: Bearer $FREDDY_API_KEY" ``` ```python import requests import os api_key = os.environ.get("FREDDY_API_KEY") headers = {"Authorization": f"Bearer {api_key}"} params = {"forceRefresh": True} response = requests.get( "https://api.freddy.aitronos.com/v1/personal-connectors/configurations/pconf_abc123/tools", headers=headers, params=params ) print(response.json()) ``` ```javascript const response = await fetch('https://api.freddy.aitronos.com/v1/personal-connectors/configurations/pconf_abc123/tools?forceRefresh=true', { method: 'GET', headers: { 'Authorization': `Bearer ${process.env.FREDDY_API_KEY}` } }); const data = await response.json(); console.log(data); ``` ## Response 200 OK ```json { "object": "list", "data": [ { "name": "clickup_create_task", "description": "Create a new task in ClickUp within a specified list.", "inputSchema": { "type": "object", "properties": { "list_id": { "type": "string", "description": "The ID of the ClickUp list where the task will be created." }, "name": { "type": "string", "description": "The name or title of the new task." }, "description": { "type": "string", "description": "A detailed description for the task." }, "priority": { "type": "integer", "description": "The priority level of the task (e.g., 1-4).", "minimum": 1, "maximum": 4 }, "assignees": { "type": "array", "items": { "type": "string" }, "description": "Array of user IDs to assign to the task." } }, "required": ["list_id", "name"] }, "outputSchema": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the newly created task." }, "url": { "type": "string", "description": "URL to view the task in ClickUp." }, "status": { "type": "string", "description": "The status of the created task." } } }, "metadata": { "rateLimit": "100/minute", "costCategory": "high" } }, { "name": "clickup_list_tasks", "description": "List tasks from a ClickUp list with optional filtering.", "inputSchema": { "type": "object", "properties": { "list_id": { "type": "string", "description": "The ID of the ClickUp list." }, "status": { "type": "string", "description": "Filter by task status." }, "assignee": { "type": "string", "description": "Filter by assignee user ID." } }, "required": ["list_id"] }, "outputSchema": { "type": "object", "properties": { "tasks": { "type": "array", "items": { "type": "object" }, "description": "Array of task objects." } } }, "metadata": { "rateLimit": "100/minute", "costCategory": "medium" } } ], "cached": true, "cachedAt": "2025-10-07T10:45:00Z", "expiresAt": "2025-10-07T11:45:00Z" } ``` Errors ```json { "error": { "type": "not_found_error", "message": "Personal connector configuration with ID 'pconf_abc123' not found.", "code": "configuration_not_found" } } ``` ```json { "error": { "type": "service_unavailable_error", "message": "Unable to connect to MCP server. The server may be down or unreachable.", "code": "mcp_server_unavailable" } } ``` ```json { "error": { "type": "authentication_error", "message": "Invalid API key", "code": "invalid_api_key" } } ``` ## Caching Behavior Tool definitions are cached to improve performance and reduce load on MCP servers: - **Cache Duration:** Tools are cached for 1 hour by default - **Auto-Refresh:** Cache is automatically refreshed when expired - **Manual Refresh:** Use `forceRefresh=true` to bypass cache - **Invalidation:** Cache is invalidated when configuration is updated or toggled The response includes cache metadata: - `cached`: Whether the response was served from cache - `cachedAt`: When the tools were cached - `expiresAt`: When the cache will expire ## Tool Object Structure Each tool in the response follows the [Personal Connector Tool Object](/docs/api-reference/objects/personal-connector-tool-object) structure. See the object documentation for detailed field descriptions.