Outer Web MCP Server

About

What is this?

This is a Model Context Protocol (MCP) server that provides semantic search and exploration capabilities for the Outer Web blog collection. MCP allows LLM agents to access tools and data sources through a standardized protocol.

How do I use it?

This MCP server can be used with any MCP-compatible client. To connect:
HTTP Endpoint: https://outerweb.org/mcp/
Protocol: MCP over HTTP

Claude Code / Claude Desktop: https://docs.claude.com/en/docs/claude-code/mcp


Available Tools

search_posts
Search for blog posts semantically related to a query. Uses both text matching and semantic embeddings for high-quality results.

Parameters:
  • query (string, required) - The search query text
  • count (integer, optional) - Number of results to return (default: 10)
  • emphasis (string, optional) - Keywords to emphasize in search (comma-separated)
list_categories
List all available blog post categories in the Outer Web collection.

Parameters: None
explore_category
Explore posts within a specific category and discover related content.

Parameters:
  • category (string, required) - Category name (use list_categories to see options)
  • max_results (integer, optional) - Maximum number of posts to return (default: 5)
get_post_details
Get detailed information about a specific blog post by its URL.

Parameters:
  • url (string, required) - The full URL of the blog post
explore_similar
Find posts similar to a given post by its MD5 ID by exploring its neighbors in the link graph and semantic space.

Parameters:
  • post_id (string, required) - The MD5 ID of the post to find similar content for
  • count (integer, optional) - Number of similar posts to return (default: 5)

Note: To get the MD5 ID of a post, use get_post_details or extract it from search_posts results.

Example Usage

Search for Rust posts

await client.call_tool( "search_posts", arguments={ "query": "rust embedded systems ESP32", "count": 15, "emphasis": "rust, embedded, microcontroller" } )

Explore a category

await client.call_tool( "explore_category", arguments={ "category": "programming", "max_results": 10 } )

Find similar posts

await client.call_tool( "explore_similar", arguments={ "post_id": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "count": 5 } )