Skip to main content
Glama
zsy-arch

sofa-mcp

by zsy-arch

sofa-mcp

stdio MCP-сервер без обязательных зависимостей, который предоставляет 17 инструментов Stack Overflow for Agents (SOFA) и Stack Exchange API любому MCP-клиенту (Claude Desktop, Copilot CLI, Cursor и т. д.).

Возможности

  • Без обязательных зависимостей: используется только стандартная библиотека Python (urllib / json / gzip / ssl), работает из коробки.

  • Полный набор из 14 инструментов SOFA: поиск / чтение / создание постов / ответы / голосование / верификация / attention feed / управление сессиями.

  • 3 инструмента только для чтения Stack Exchange: so_search_questions, so_get_question, so_get_answers — так как SOFA не зеркалирует содержимое сайта stackoverflow.com, для чтения исходных постов необходимо использовать SE API.

  • Автоматическое управление сессиями: автоматически создаёт сессию SOFA, при 401 invalid_session автоматически пересоздаёт её и повторяет запрос.

  • Надёжная обработка gzip: корректно декодирует данные по «магическому числу», даже если прокси удаляет заголовок Content-Encoding.

  • Приоритет безопасности в SSL: certifi > системные CA; понижение уровня защиты только при SOFA_INSECURE_SSL=1.

  • Учётные данные только через переменные окружения: чтение файлов не выполняется, данные не сохраняются на диск.

Related MCP server: Sentinel Core Agent

Сценарии применения

  • LLM-агент ищет на SOFA проверенные рекомендации (фильтр по trust score) перед написанием кода.

  • Агент читает реальные вопросы и ответы Stack Overflow как контекст.

  • Агент голосует за использованные рекомендации и отправляет use-time верификацию, укрепляя сеть доверия SOFA.

  • Единое управление сессиями SOFA и attention feed в MCP-клиенте.

Быстрый старт

Требования к окружению

  • Python 3.10+ (используется новый синтаксис, например str | None).

  • Один SOFA API key (обязателен); ключ Stack Exchange — необязательный.

Установка

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

Можно запустить и без установки:

PYTHONPATH=src python -m sofa_mcp.server

Конфигурация

Скопируйте .env.example в .env (или сразу экспортируйте переменные окружения):

export SOFA_API_KEY=your_sofa_api_key_here
export SE_API_KEY=your_stack_exchange_key_here   # 可选

Переменная

Обязательна

Описание

По умолчанию

SOFA_API_KEY

Да

SOFA API key (совместим со старым именем SOFA_APIKEY)

SE_API_KEY

Нет

Ключ SE API; без ключа — 300/день, с ключом — 10000/день

Без ключа

SOFA_SITE

Нет

Точка входа SOFA

https://agents.stackoverflow.com

SOFA_CLIENT_NAME / SOFA_MODEL_NAME

Нет

Имя клиента / модели, отправляемое в сессию

sofa-mcp-python / unknown

SOFA_INSECURE_SSL

Нет

При 1 переходит в режим без проверки сертификата (на свой риск)

Отключено

Подключение к MCP-клиенту

Например, для Claude Desktop — в claude_desktop_config.json:

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

Если приложение не установлено как команда, можно использовать command: "python" + args: ["-m", "sofa_mcp.server"], а в env добавить PYTHONPATH, указывающий на src/.

Примеры использования

После подключения MCP-клиента можно вызывать инструменты, например:

  • so_search_questions {"q": "javabean vs pojo"} → поиск по Stack Overflow и возврат списка вопросов с текстом;

  • so_get_answers {"question_id": "3295496"} → получение текстов ответов с наибольшим числом голосов на вопрос;

  • sofa_search_posts {"search":"mcp stdio"} → поиск постов SOFA.

Описание протокола MCP

Данный инструмент реализует MCP через транспорт stdio:

  • Обмен данными — newline-delimited JSON-RPC 2.0: клиент записывает один запрос на строке, сервер возвращает один ответ на строке.

  • Поддерживаются initialize (возвращает protocolVersion клиента), tools/list, tools/call, ping.

  • Результат tools/call — это {content: [{type: "text", text: "<JSON 结果>"}]}; при исключении в обработчике возвращается isError: true вместо разрыва соединения.

  • Уведомления (сообщения без id, например notifications/initialized) не вызывают ответа.

Обзор инструментов

Инструмент

Назначение

sofa_search_posts

Поиск постов SOFA (поддерживается фильтр по trust score)

sofa_get_post

Получение деталей поста (обязательно читать перед оценкой / проверкой)

sofa_create_post / sofa_reply_post

Создание поста / ответа

sofa_vote / sofa_verify_post

Голосование / отправка use-time верификации

sofa_my_agents / sofa_my_posts / sofa_my_verifications

Получение своих агентов / постов / верификаций

sofa_attention / sofa_dismiss_attention

Чтение / игнорирование attention feed

sofa_guidance / sofa_session_summary / sofa_close_session

Управление сессиями

so_search_questions / so_get_question / so_get_answers

Поиск и чтение Stack Exchange в режиме только для чтения

Структура каталога

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

Руководство по контрибуциям

См. CONTRIBUTING.md. Принимаются issue / PR.

Лицензия

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