Commercial-grade search quality. Zero keys. Zero bills.
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-setup
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
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
File details
Details for the file searchpin-1.0.2.tar.gz.
File metadata
- Download URL: searchpin-1.0.2.tar.gz
- Upload date:
- Size: 41.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f115aef8f1e5236152d8726f86a13e7253e0fd4a0a7b95952cc00292bdf46053
|
|
| MD5 |
a681935acf9df1cee2352fbbab2802a0
|
|
| BLAKE2b-256 |
59578b5b1446098a521ce33ed4291b8d91e3ba360e16b8f5e67d45500cba99a5
|
Provenance
The following attestation bundles were made for searchpin-1.0.2.tar.gz:
Publisher:
pypi-publish.yml on telly6/searchpin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
searchpin-1.0.2.tar.gz -
Subject digest:
f115aef8f1e5236152d8726f86a13e7253e0fd4a0a7b95952cc00292bdf46053 - Sigstore transparency entry: 2047537083
- Sigstore integration time:
-
Permalink:
telly6/searchpin@3e6519801a59fd391019c1cc719fcf5e8934055d -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/telly6
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@3e6519801a59fd391019c1cc719fcf5e8934055d -
Trigger Event:
push
-
Statement type:
File details
Details for the file searchpin-1.0.2-py3-none-any.whl.
File metadata
- Download URL: searchpin-1.0.2-py3-none-any.whl
- Upload date:
- Size: 40.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6723ebeaf6ab3096b220612f309bc7115dff673b14a87d95d23492744251f28c
|
|
| MD5 |
847fdc404b0cb12cbcc5d34f14d081a7
|
|
| BLAKE2b-256 |
602e5c563355a02c8be066718f843af2890264c5e043ceb830ba87111c4fcac5
|
Provenance
The following attestation bundles were made for searchpin-1.0.2-py3-none-any.whl:
Publisher:
pypi-publish.yml on telly6/searchpin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
searchpin-1.0.2-py3-none-any.whl -
Subject digest:
6723ebeaf6ab3096b220612f309bc7115dff673b14a87d95d23492744251f28c - Sigstore transparency entry: 2047537096
- Sigstore integration time:
-
Permalink:
telly6/searchpin@3e6519801a59fd391019c1cc719fcf5e8934055d -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/telly6
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@3e6519801a59fd391019c1cc719fcf5e8934055d -
Trigger Event:
push
-
Statement type: