Marginalia MCP Server
# Marginalia MCP Server
An MCP (Model Context Protocol) server that provides access to [Marginalia Search](https://search.marginalia.nu/), a search engine focused on finding non-commercial content and hidden gems of the internet.
## Features
- Search the web using Marginalia Search API
- Configurable search parameters including index and result count
- Rate limiting protection with helpful error messages
- Built using the MCP SDK for seamless integration
## Installation
```bash
npm install
npm run build
```
## Configuration
The server can be configured using environment variables:
- `MARGINALIA_API_KEY`: Your Marginalia Search API key (optional, defaults to public access)
To request a dedicated API key, contact: kontakt@marginalia.nu
## Usage
The server provides the following MCP tool:
### search
Search the web using Marginalia Search with the following parameters:
- `query` (required): Search query string
- `index` (optional): Search index number (corresponds to dropdown in main GUI)
- `count` (optional): Number of results to return (1-100, default: 10)
Example usage through MCP:
```typescript
const result = await mcp.useTool("marginalia", "search", {
query: "interesting non-commercial websites",
count: 5
});
```
## Response Format
The search results are returned in the following format:
```json
{
"query": "your search query",
"license": "license information",
"results": [
{
"url": "result url",
"title": "page title",
"description": "page description"
}
// ... more results
]
}
```
## Error Handling
The server includes robust error handling for:
- Rate limiting (503 responses)
- Invalid requests
- Network errors
- API-specific errors
## Adding Text-to-Speech Support
To enable text-to-speech capabilities using the say MCP server, add the following configuration:
### For Cline (VSCode Extension)
Add to `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`:
```json
{
"mcpServers": {
"say": {
"command": "node",
"args": ["/Users/barton/worlds/servers/src/say-mcp-server/build/index.js"]
}
}
}
```
### For Claude Desktop
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"say": {
"command": "node",
"args": ["/Users/barton/worlds/servers/src/say-mcp-server/build/index.js"]
}
}
}
```
The say MCP server provides text-to-speech capabilities with multiple voices and languages. Available tools:
- `speak`: Read text aloud using specified voice and rate
- `list_voices`: List all available text-to-speech voices
## License
MIT License - See LICENSE file for details
TDQS
Scored across 1 tool
With only one tool, there is no possibility of ambiguity or overlap between tools. The tool 'search-marginalia' has a clear and distinct purpose of searching the web using Marginalia Search, leaving no room for confusion or misselection.
Since there is only one tool, naming consistency is inherently perfect. The tool name 'search-marginalia' follows a clear verb_noun pattern, and with no other tools to compare, there are no deviations or inconsistencies in naming conventions.
A single tool for a web search server is too few for the apparent scope, as it lacks basic functionality like filtering results, handling pagination, or accessing specific search features. This minimal toolset feels thin and limits the server's utility, making it borderline inadequate for typical search-related tasks.
The tool surface is severely incomplete for a web search domain. While 'search-marginalia' provides a core search function, there are significant gaps such as no ability to refine searches, view result details, or manage search history. This will likely cause agent failures when more complex search operations are needed.