Skip to main content
Glama
zsy-arch

sofa-mcp

by zsy-arch

sofa-mcp

Ein stdio MCP-Server ohne erforderliche Abhängigkeiten, der die 17 Tools von Stack Overflow for Agents (SOFA) und Stack Exchange API allen MCP-Clients (Claude Desktop, Copilot CLI, Cursor usw.) zur Verfügung stellt.

Funktionen

  • Keine erforderlichen Abhängigkeiten: Verwendet ausschließlich die Python-Standardbibliothek (urllib / json / gzip / ssl) und ist sofort einsatzbereit.

  • Alle 14 SOFA-Tools: Suche/Lesen/Erstellen/Antworten/Abstimmen/Verifizieren/Attention-Feed/Sitzungsverwaltung

  • Stack Exchange, 3 Read-only-Tools: so_search_questions, so_get_question, so_get_answers – da SOFA keine Inhalte von stackoverflow.com spiegelt, müssen Originalbeiträge über die SE-API gelesen werden.

  • Automatische Sitzungsverwaltung: Erstellt automatisch SOFA-Sitzungen und wiederholt bei 401 invalid_session nach automatischem Neuaufbau.

  • Robuste gzip-Verarbeitung: Auch wenn Proxys den Content-Encoding-Header entfernen, wird anhand der Magic Number korrekt dekodiert.

  • Sicherheitsorientierte SSL-Strategie: certifi > System-CA; ein explizites Zurückstufen erfolgt nur bei SOFA_INSECURE_SSL=1.

  • Anmeldedaten ausschließlich über Umgebungsvariablen: Es werden weder Dateien gelesen, noch Daten auf die Festplatte geschrieben.

Related MCP server: Sentinel Core Agent

Anwendungsfälle

  • LLM-Agenten können vor der Entwicklung nach vertrauenswürdigen Anleitungen auf SOFA suchen (Trust-Score-Filter).

  • Agenten lesen reale Stack-Overflow-Fragen und -Antworten als Kontext.

  • Agenten stimmen über verwendete Anleitungen ab bzw. senden eine Use-Time-Validierung und geben so in das SOFA-Vertrauensnetzwerk zurück.

  • SOFA-Sitzungen und Attention-Feed einheitlich im MCP-Client verwalten.

Schnellstart

Umgebungsanforderungen

  • Python 3.10+ (verwendet neue Syntax wie str | None)

  • Ein SOFA-API-Schlüssel (erforderlich); optional ein Stack-Exchange-Schlüssel

Installation

git clone https://github.com/zsy-arch/stackoverflow_com-mcp.git
cd sofa-mcp
pip install .            # 或 pip install -e ".[certifi]" 获得更可靠的 CA

Alternativ kann ohne Installation direkt ausgeführt werden:

PYTHONPATH=src python -m sofa_mcp.server

Konfiguration

Kopieren Sie .env.example zu .env (oder exportieren Sie die Umgebungsvariablen direkt):

export SOFA_API_KEY=your_sofa_api_key_here
export SE_API_KEY=your_stack_exchange_key_here   # 可选

Variable

Erforderlich

Beschreibung

Standard

SOFA_API_KEY

Ja

SOFA-API-Schlüssel (kompatibel mit altem Namen SOFA_APIKEY)

SE_API_KEY

Nein

SE-API-Schlüssel; anonym 300/Tag, mit Schlüssel 10000/Tag

Anonym

SOFA_SITE

Nein

SOFA-Endpunkt

https://agents.stackoverflow.com

SOFA_CLIENT_NAME / SOFA_MODEL_NAME

Nein

In der Sitzung gemeldeter Client-/Modellname

sofa-mcp-python / unknown

SOFA_INSECURE_SSL

Nein

Wenn 1, keine Zertifikatsprüfung (Verwendung auf eigene Gefahr)

Aus

MCP-Client einbinden

Am Beispiel von claude_desktop_config.json für Claude Desktop:

{
  "mcpServers": {
    "stackoverflow": {
      "command": "sofa-mcp",
      "env": {
        "SOFA_API_KEY": "your_sofa_api_key_here",
        "SE_API_KEY": "your_stack_exchange_key_here"
      }
    }
  }
}

Wenn nicht als Befehl installiert, können Sie command: "python" + args: ["-m", "sofa_mcp.server"] verwenden und in env PYTHONPATH auf src/ setzen.

Ausführungsbeispiele

Nachdem der MCP-Client verbunden ist, können Tools aufgerufen werden, z. B.:

  • so_search_questions {"q": "javabean vs pojo"} → Sucht SO und gibt eine Liste von Fragen mit Inhalt zurück.

  • so_get_answers {"question_id": "3295496"} → Ruft den Inhalt der höchstbewerteten Antwort zu dieser Frage ab.

  • sofa_search_posts {"search": "mcp stdio"} → Sucht SOFA-Beiträge.

Hinweise zum MCP-Protokoll

Dieses Tool implementiert MCP über den stdio-Transport:

  • Die Kommunikation ist newline-delimited JSON-RPC 2.0: Der Client schreibt pro Zeile eine Anfrage, der Server pro Zeile eine Antwort.

  • Unterstützt werden initialize (gibt die protocolVersion des Clients zurück), tools/list, tools/call sowie ping.

  • Das Ergebnis von tools/call ist {content: [{type: "text", text: "<JSON 结果>"}]}; bei einem Handler-Handler-Fehler wird isError: true zurückgegeben statt die Verbindung zu trennen.

  • Benachrichtigungen (Nachrichten ohne id, z. B. notifications/initialized) erzeugen keine Antwort.

Tool-Übersicht

Tool

Verwendung

sofa_search_posts

SOFA-Beiträge suchen (mit Trust-Filter)

sofa_get_post

Beitragsdetails abrufen (muss vor Vote/verify gelesen werden)

sofa_create_post / sofa_reply_post

Beitrag erstellen / Antworten

sofa_vote / sofa_verify_post

Abstimmen / Use-Time-Validierung

sofa_my_agents / sofa_my_posts / sofa_my_verifications

Eigene Agenten / Beiträge / Validierungen abfragen

sofa_attention / sofa_dismiss_attention

Attention-Feed lesen / ignorieren

sofa_guidance / sofa_session_summary / sofa_close_session

Sitzung verwalten

so_search_questions / so_get_question / so_get_answers

Stack Exchange – schreibgeschützte Suche

Verzeichnisstruktur

sofa-mcp/
├── src/sofa_mcp/
│   ├── __init__.py      # 版本号
│   ├── http.py          # SSL 上下文 + 查询串工具
│   ├── sofa_client.py   # SOFA REST 客户端(会话管理)
│   ├── se_client.py     # Stack Exchange API v2.3 客户端
│   ├── tools.py         # 17 个工具的 schema 与处理器分发
│   └── server.py        # MCP stdio 协议循环 + 入口
├── tests/
│   └── test_protocol.py # 冒烟测试(无需网络与密钥)
├── pyproject.toml
├── .env.example
└── README.md / README.en.md

Mitwirken

Siehe CONTRIBUTING.md. Issues und PRs sind willkommen.

Lizenz

MIT

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with Salesforce organizations through natural language by exposing Salesforce APIs (REST, Bulk v2, GraphQL, Tooling, Auth) as MCP tools for querying data, managing records, and executing SOQL queries.
    12
    19
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to interact with Scout Live platform capabilities through standardized MCP primitives, including tools for app management, deployment, and logging.
    6
    12
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Exposes Azure AI Foundry agents, workflows, and AI Search vector-database capabilities as MCP tools, enabling natural language interaction with agents, semantic search, and index management.
    10
    2
    MIT

View all related MCP servers

Related MCP Connectors

  • Search Stack Exchange questions, fetch Q&A threads as markdown, look up tag FAQs and user profiles.

  • Hosted MCP with 91 agent tools: X, domains, SEO, Maps, Trends, Search, YouTube, TikTok, and more.

  • Manage SRG+ hubs, channels, content, assets, users, and workspaces from any MCP-aware AI agent.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zsy-arch/stackoverflow_com-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server