Self-hosted web search for AI agents — zero API keys, embedding re-rank, multi-engine parallel search
Project description
Searchpin
Self-hosted web search for AI agents — zero API keys, zero cost. pip install searchpin and you're done.
- Search quality rivals commercial products — four search engines in parallel (Baidu, Sogou, Bing CN, Bing Intl), merged and re-ranked by semantic similarity. A rare capability among free MCP search tools.
- Zero-cost agent development — no API keys, no sign-ups, no usage limits. Pair with a local LLM and your entire development loop costs nothing. Run 24/7 agent experiments without worrying about quotas.
- Pollution detection — automatically flags results that are unrelated to your query, so your agent doesn't chase irrelevant content.
- Cross-verification — results from four independent sources let your LLM corroborate information across engines, raising the credibility of what it finds.
- Content extraction that handles modern sites — goes beyond basic HTML-to-text to extract SSR hydration payloads (Next.js, Nuxt), JSON-LD structured data, and microdata from pages that would otherwise return empty.
- Token-conscious output — results are titles, URLs, and snippets only. Your LLM decides which pages are worth fetching in full. Structured extraction data is compact and truncated, keeping token overhead under control.
Quick Start
pip install searchpin
searchpin-server
Configuration
Claude Desktop / Cursor / any MCP client
Add to your mcpServers config:
{
"mcpServers": {
"Searchpin": {
"command": "searchpin-server",
"args": []
}
}
}
VS Code
Or manually, add to .vscode/mcp.json:
{
"servers": {
"Searchpin": {
"command": "searchpin-server",
"args": []
}
}
}
Docker
docker run -i --rm ghcr.io/telly6/searchpin:latest
{
"mcpServers": {
"Searchpin": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/telly6/searchpin:latest"]
}
}
}
Python API
from searchpin import SearchEngine
engine = SearchEngine()
results = engine.search("Python 3.13 new features")
page = engine.fetch("https://docs.python.org/3/whatsnew/3.13.html")
engine.close()
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
searchpin-1.0.0.tar.gz
(41.6 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
searchpin-1.0.0-py3-none-any.whl
(39.9 kB
view details)
File details
Details for the file searchpin-1.0.0.tar.gz.
File metadata
- Download URL: searchpin-1.0.0.tar.gz
- Upload date:
- Size: 41.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f3b5ceb63ddd052de7077cd55f50ee88a996c8e75d0797291e1061e8419a65c8
|
|
| MD5 |
b5a3e5a87f7d8a2cc7df01f47382390d
|
|
| BLAKE2b-256 |
03f23476937261238524e71ae548eb42cd19b204e5fdf73b1ee8c9ba12638111
|
File details
Details for the file searchpin-1.0.0-py3-none-any.whl.
File metadata
- Download URL: searchpin-1.0.0-py3-none-any.whl
- Upload date:
- Size: 39.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c3654735f787be650146e1f5725b4f4e274583ec40a63d306f361591971b394
|
|
| MD5 |
45259fb1ba534b913afbec7d257f9fe2
|
|
| BLAKE2b-256 |
02aaed3eb1ed5c2b1ba851b7663557d971e4d392ac92cd5bb7c6b698d9edc920
|