MCP Svelte Docs Server
by spences10
Verified
# mcp-svelte-docs
A Model Context Protocol (MCP) server that provides efficient access
to Svelte documentation with advanced caching, search capabilities,
and optimised content delivery. This server integrates directly with
Svelte's official documentation, offering both full and compressed
variants suitable for different LLM context window sizes.
<a href="https://glama.ai/mcp/servers/wu4hy1xtjb">
<img width="380" height="200" src="https://glama.ai/mcp/servers/wu4hy1xtjb/badge" />
</a>
## Features
- 📚 Complete Svelte documentation access through MCP Resources
- 🔍 Advanced search capabilities:
- Document type filtering (API, Tutorial, Example, Error)
- Section hierarchy awareness
- Intelligent relevance scoring based on:
- Term frequency
- Section importance
- Document type relevance
- Exact phrase matching
- Context-aware result excerpts
- Related search suggestions
- 💾 Efficient caching with LibSQL
- 🔄 Automatic content freshness checks
- 📦 Support for package-specific documentation (Svelte, Kit, CLI)
- 📏 Smart content chunking for large documents
- 🗜️ Compressed variants for smaller context windows
- 🏗️ Built on the Model Context Protocol
## Configuration
This server requires configuration through your MCP client. Here are
examples for different environments:
### Cline Configuration
Add this to your Cline MCP settings:
```json
{
"mcpServers": {
"svelte-docs": {
"command": "npx",
"args": ["-y", "mcp-svelte-docs"],
"env": {
"LIBSQL_URL": "file:local.db",
"LIBSQL_AUTH_TOKEN": "your-auth-token-if-using-remote-db"
}
}
}
}
```
### Claude Desktop with WSL Configuration
For WSL environments, add this to your Claude Desktop configuration:
```json
{
"mcpServers": {
"svelte-docs": {
"command": "wsl.exe",
"args": [
"bash",
"-c",
"LIBSQL_URL=file:local.db LIBSQL_AUTH_TOKEN=your-token npx -y mcp-svelte-docs"
]
}
}
}
```
### Environment Variables
The server supports the following environment variables:
- `LIBSQL_URL` (optional): URL for the LibSQL database. Defaults to
`file:local.db`
- `LIBSQL_AUTH_TOKEN` (optional): Auth token for remote LibSQL
database
## API
The server implements both MCP Resources and Tools:
### Resources
Access documentation through these URIs:
- `svelte-docs://docs/llms.txt` - Documentation index
- `svelte-docs://docs/llms-full.txt` - Complete documentation
- `svelte-docs://docs/llms-small.txt` - Compressed documentation
- `svelte-docs://docs/{package}/llms.txt` - Package-specific
documentation
- Supported packages: svelte, kit, cli
### Tools
#### search_docs
Enhanced search functionality with advanced filtering and context
awareness.
Parameters:
- `query` (string, required): Search keywords or natural language
query
- `doc_type` (string, optional): Filter by documentation type
- Values: 'api', 'tutorial', 'example', 'error', 'all'
- Default: 'all'
- `context` (number, optional): Number of surrounding paragraphs (0-3)
- Default: 1
- `include_hierarchy` (boolean, optional): Include section hierarchy
- Default: true
Example Usage:
```json
// API Reference Search
{
"query": "bind:value directive",
"doc_type": "api",
"context": 1
}
// Tutorial Search
{
"query": "routing sveltekit",
"doc_type": "tutorial",
"context": 2,
"include_hierarchy": true
}
```
#### get_next_chunk
Retrieve subsequent chunks of large documents.
Parameters:
- `uri` (string, required): Document URI
- `chunk_number` (number, required): Chunk number to retrieve
(1-based)
## Development
### Setup
1. Clone the repository
2. Install dependencies:
```bash
pnpm install
```
3. Build the project:
```bash
pnpm build
```
4. Run in development mode:
```bash
pnpm dev
```
### Publishing
1. Update version in package.json
2. Build the project:
```bash
pnpm build
```
3. Publish to npm:
```bash
pnpm publish
```
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
MIT License - see the [LICENSE](LICENSE) file for details.
## Acknowledgments
- Built on the
[Model Context Protocol](https://github.com/modelcontextprotocol)
- Powered by [Svelte Documentation](https://svelte.dev)
- Uses [LibSQL](https://github.com/libsql/libsql) for efficient
caching