MCP tools for reading, listing, and searching your document repositories, local file systems, cloud object storage (S3, GCS, Azure Blob), SharePoint, Confluence, and knowledge base platforms. MCP resource URIs define the addressable scope of file access: a resource URI like s3://my-bucket/reports/ exposes only that prefix, not the full bucket, conforming to the MCP specification's resource model. Document extraction pipeline for PDFs (pdfminer or PyMuPDF for text extraction, preserving page and section structure for context), Word documents (python-docx), and plain text files. Content chunking strategy calibrated to your context window budget: semantic chunking that splits at paragraph or section boundaries rather than fixed character counts produces better-quality passages for the AI to reason over. The TypeScript MCP SDK (@modelcontextprotocol/sdk) is used to define resource handlers with typed schemas; resource handlers implement listResources() to enumerate available documents and readResource(uri) to return the content of a specific resource, both returning responses in the MCP specification's ResourceContents format. Tool definitions use JSON Schema with description fields that are read by the AI to determine when and how to call each tool, clear, specific descriptions are critical for the model to correctly select between a "search documents" tool and a "read specific document" tool without ambiguity. Semantic search via a vector index built from your document corpus: the AI retrieves the most relevant sections by embedding similarity rather than keyword match, then returns them with source attribution (filename, page number) so outputs are traceable. Access controls at the storage level: the tool only accesses the S3 prefix or SharePoint site it is granted, not the full storage account. Server lifecycle is managed via the MCP initialize/ping/shutdown protocol: the server declares its capabilities on initialization, responds to client capability negotiation, and handles graceful shutdown without leaving open file handles or dangling connections.