Singularity - MCP Discovery & Security Gateway

io.github.gaurav-kumar-sinha-060705由 GitHub 帳號 gaurav-kumar-sinha-060705 發布v0.2.0更新於 Oct 24, 2026

Find, vet, and run MCP tools through a secure audited gateway with prompt-injection risk scoring

已驗證Streamable HTTP可網頁執行開發者工具安全與監控

概覽

AI 產生的概覽

一個遠端 MCP 閘道,讓助理透過信任評分與提示注入風險評分來尋找、審查與比較 MCP 工具。

可以做什麼
  • 針對所描述的問題提供排序後的工具推薦,附上契合度、信任度、排名分數與淺白的安全標記
  • 查看某個工具的完整信任報告:申請權限與實際所需權限、注入掃描結論、發布者狀態
  • 將候選工具並排比較,產生信任對照表
  • 依回傳數量與最高價格等級篩選推薦結果
適用情境
適合在挑選要接入哪些 MCP 伺服器時使用,希望在連線前快速了解其安全性與可信度;也適合讓助理針對某項需求列出候選工具。
執行需求
需要遠端 streamable HTTP 端點;存取 MCP 路徑必須通過 OAuth,存取權杖由授權流程提供。未宣告任何環境變數或請求標頭。
安裝前請注意
MCP 端點要求 OAuth,涉及授權流程與權杖處理。推薦結果與信任結論來自該服務自身的索引與靜態掃描,應視為參考而非權威結論;README 說明掃描器仍處於預覽階段。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Singularity - MCP Discovery & Security Gateway,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.gaurav-kumar-sinha-060705%2Fsingularity/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "singularity-discovery-security-gateway": {
      "type": "http",
      "url": "https://singularity-osd2.onrender.com/mcp"
    }
  }
}

README

Singularity — MCP Discovery & Security Gateway

Perplexity for MCP. Discover the right tool for a problem, see its trust card (prompt-injection risk, permission overreach, publisher status), connect it in one click, and execute it through a secure, audited gateway — one product, one config.

See ROADMAP.md for the full plan. Blueprint: ../Singularity_Blueprint.md.

Quickstart (local)

powershell
pip install -r requirements.txtcopy .env.example .env          # optional, defaults are fine (SQLite)python scripts/seed_index.py    # builds index + embeddings (first run downloads ~35MB model)python -m uvicorn app.main:app --reload   # http://127.0.0.1:8000/docs

A fresh boot with an empty database auto-seeds itself — seed_index.py is only needed for manual re-seeding.

Use Singularity as an MCP server

Singularity is a native MCP server (streamable HTTP, stateless) at /mcp.

VS Code / Copilot Chat — .vscode/mcp.json:

json
{ "servers": { "singularity": { "type": "http", "url": "http://127.0.0.1:8000/mcp" } } }

Cursor — ~/.cursor/mcp.json:

json
{ "mcpServers": { "singularity": { "url": "http://127.0.0.1:8000/mcp" } } }

Claude Code CLI:

powershell
claude mcp add --transport http singularity http://127.0.0.1:8000/mcp

Then just ask your agent: "my team needs expense tracking" — it calls find_solutions and gets ranked options with trust cards and security flags.

One-click install (replace the URL after deploying): Install in VS Code

/mcp now requires OAuth (a popup at /authorize/<slug> supplies the access token). For a curl-able check use /health and /.well-known/oauth-authorization-server.

Tools

ToolWhat it does
find_solutions(problem, top_k?, max_pricing_tier?)Ranked, trust-scored recommendations with plain-language security flags
get_trust_report(slug)Full security card: permissions requested vs needed, injection-scan verdicts, publisher status
compare_tools(slugs[])Side-by-side trust table for shortlisted candidates

Every result carries fit_score, trust_score, rank_score, trust_flags, and a human-readable rationale. The seed index includes quickledger-pro, an intentionally poisoned fictional tool — ask about expenses and watch it get flagged (suspicious_description_imperative, hidden_unicode_characters, permission_overreach) and pushed down the ranking.

Deploy your own instance (Render + Supabase)

Full walkthrough in DEPLOY.md. Summary:

  1. Create a free Supabase project → copy the connection string → add +psycopg driver segment + ?sslmode=require
  2. Push this repo to GitHub → Render "New +" → "Blueprint" → it reads render.yaml
  3. Paste the Supabase URL into the SINGULARITY_DATABASE_URL env var when prompted
  4. First boot auto-creates tables and seeds the index; https://<app>.onrender.com/mcp is live

Publish to MCP registries

After deploying (public HTTPS required), list Singularity so others can find it:

  1. Official MCP Registry — edit placeholders in server.json (replace XXXX with your Render app name), then:
    powershell
    npx mcp-publisher@latest init      # scaffolds/validates server.jsonnpx mcp-publisher@latest login     # prove io.github.<you> ownership via GitHubnpx mcp-publisher@latest publish   # listed at https://registry.modelcontextprotocol.io within minutes
  2. Smithery — submit repo at https://smithery.ai/new (uses smithery.yaml)
  3. Glama — submit remote URL at https://glama.ai, then claim the listing
  4. GitHub topics — add mcp-server, mcp, ai-security topics to your repo; PulseMCP/MCP.so crawlers pick it up within 1–2 weeks

Tip: registries re-crawl weekly and strip verified badges from sleeping servers — Render's $7/mo Starter plan keeps Singularity always-on during listing/investor periods.

Tests

powershell
pytest -v

Layout

singularity/  main.py                     FastAPI app factory + lifespan (auto-seed, mounts MCP)  mcp_server.py               native MCP server: find_solutions / get_trust_report / compare_tools  config.py                   env-driven settings (SINGULARITY_* prefix)  database.py                 SQLAlchemy engine/session (SQLite dev, Postgres prod)  models.py                   Tool + AuditLog tables  schemas.py                  request/response contracts  middleware/    rate_limit.py             per-IP token-bucket limiter (X-Forwarded-For aware)  services/    discovery_engine.py       heuristic intent parsing    recommendation_index.py   in-memory vector search over seeded tools    ranking.py                fit/trust blend + rationale builder    scanner.py                static injection/overreach scan (Phase 2 preview)    seeder.py                 seed logic shared by CLI and boot-time auto-seed    embeddings.py             fastembed provider (bge-small-en-v1.5)  routers/    recommend.py              POST /recommend, GET /toolsdata/seed_tools.json          curated 21-tool index incl. demo attack sample (tier1/tier2/tier3)scripts/seed_index.py         manual seeding CLIscripts/smoke_execute.ps1     authenticated REST execute smoke testscripts/smoke_oauth.py        OAuth discovery + config smoke testDockerfile / render.yaml      one-command Render deploymentserver.json / smithery.yaml   registry publishing manifests (fill placeholders first)tests/                        pytest suite (API + scanner + MCP tools & endpoint)

來源:README.md,提交 4203499

工具

0
該伺服器需要登入,因此 SourceWeft 無法在沒有帳號的情況下讀取其工具,也未收錄。已連接帳號所能看到的內容可能因帳號及其權限而異。

版本歷史

1
  1. v0.2.0最新Sep 16, 2026

評分

已滿足適用檢查項的 75%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。