remove_documentation
Remove outdated or incorrect documentation sources by URL to clean up and manage the RAG documentation collection, affecting future search results.
Instructions
Remove specific documentation sources from the system by their URLs. Use this tool to clean up outdated documentation, remove incorrect sources, or manage the documentation collection. The removal is permanent and will affect future search results. Supports removing multiple URLs in a single operation.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | Array of URLs to remove from the database |
Implementation Reference
- RemoveDocumentationHandler class containing the handle method that executes the tool logic: validates input URLs, deletes matching documentation entries from the Qdrant 'documentation' collection, handles specific errors, and returns success/error responses.export class RemoveDocumentationHandler extends BaseHandler { async handle(args: any): Promise<McpToolResponse> { if (!args.urls || !Array.isArray(args.urls) || args.urls.length === 0) { throw new McpError(ErrorCode.InvalidParams, 'urls must be a non-empty array'); } if (!args.urls.every((url: string) => typeof url === 'string')) { throw new McpError(ErrorCode.InvalidParams, 'All URLs must be strings'); } try { // Delete using filter to match any of the provided URLs const result = await this.apiClient.qdrantClient.delete(COLLECTION_NAME, { filter: { should: args.urls.map((url: string) => ({ key: 'url', match: { value: url } })) }, wait: true // Ensure deletion is complete before responding }); if (!['acknowledged', 'completed'].includes(result.status)) { throw new Error('Delete operation failed'); } return { content: [ { type: 'text', text: `Successfully removed documentation from ${args.urls.length} source${args.urls.length > 1 ? 's' : ''}: ${args.urls.join(', ')}`, }, ], }; } catch (error) { if (error instanceof Error) { if (error.message.includes('unauthorized')) { throw new McpError( ErrorCode.InvalidRequest, 'Failed to authenticate with Qdrant cloud while removing documentation' ); } else if (error.message.includes('ECONNREFUSED') || error.message.includes('ETIMEDOUT')) { throw new McpError( ErrorCode.InternalError, 'Connection to Qdrant cloud failed while removing documentation' ); } } return { content: [ { type: 'text', text: `Failed to remove documentation: ${error}`, }, ], isError: true, }; } } }
- src/handler-registry.ts:97-113 (schema)Tool definition object for 'remove_documentation' including name, description, and inputSchema used in the MCP list_tools response.name: 'remove_documentation', description: 'Remove specific documentation sources from the system by their URLs. Use this tool to clean up outdated documentation, remove incorrect sources, or manage the documentation collection. The removal is permanent and will affect future search results. Supports removing multiple URLs in a single operation.', inputSchema: { type: 'object', properties: { urls: { type: 'array', items: { type: 'string', description: 'The complete URL of the documentation source to remove. Must exactly match the URL used when the documentation was added.', }, description: 'Array of URLs to remove from the database', }, }, required: ['urls'], }, } as ToolDefinition,
- src/handler-registry.ts:40-40 (registration)Registration of the RemoveDocumentationHandler instance in the handlers Map under the key 'remove_documentation'.this.handlers.set('remove_documentation', new RemoveDocumentationHandler(this.server, this.apiClient));