sahmk-mcp
SAHMK MCP Server
Официальное распространение: только GitHub (
sahmk-sa/sahmk-mcp) и PyPI (sahmk-mcp). Не устанавливайте из сторонних форков.
Официальный MCP-сервер SAHMK для SAHMK — используйте данные саудовского рынка внутри ИИ-агентов, таких как Cursor и Claude Desktop.
Этот MCP предоставляет набор инструментов Sahmk для ИИ-агентов, чтобы ассистенты могли запрашивать саудовский рынок на естественном языке.
Инструменты
Инструмент | Назначение |
| Снимок для одного идентификатора акции (символ, название или псевдоним) |
| Сравнение нескольких идентификаторов акций за один вызов |
| Каталог компаний / поиск символов с пагинацией |
| Сводка по |
| Лидеры роста/падения по |
| Снимок производительности секторов |
| Профиль компании и фундаментальные показатели |
| Финансовая отчётность (тариф Starter и выше) |
| Рассчитанные финансовые коэффициенты (возможности Starter/Pro различаются) |
| Сравнение нормализованных коэффициентов/метрик по нескольким символам (лимиты Starter/Pro различаются) |
| История дивидендов и данные о доходности (тариф Starter и выше) |
| Глубина книги заявок (лестница bid/ask, спред, дисбаланс) (доступ по подписке) |
| Последние живые сделки / лента (тариф Pro и выше) |
| Сводки событий по акциям, сгенерированные ИИ (тариф Pro и выше) |
| Исторические данные OHLCV |
Related MCP server: equivault-mcp
Контракт с приоритетом идентификатора
Канонические входные данные для инструментов котировок —
identifierиidentifiers.Устаревшие псевдонимы
symbolиsymbolsпо-прежнему принимаются для совместимости.Отдавайте предпочтение каноническим ключам в промптах, вызовах инструментов и шаблонах клиентов.
Разрешение выполняется на стороне бэкенда/SDK (названия, псевдонимы и символы); MCP не ведёт собственную карту символов.
Когда использовать MCP, а когда SDK
Используйте MCP для интерактивных рабочих процессов агентов в таких инструментах, как Cursor и Claude Desktop.
Используйте Python SDK для скриптов, автоматизации, дашбордов, оповещений, бэктестов и прикладного кода.
Репозиторий SDK: sahmk-sa/sahmk-python
Получите свой API-ключ
Зарегистрируйтесь на sahmk.sa/developers
Перейдите в Панель управления → API-ключи → Создать ключ
Скопируйте ваш ключ (начинается с
shmk_live_илиshmk_test_)
Доступ к глубине рынка
get_depth доступен по подписке. Запросите доступ к реальному времени/глубине на панели разработчика:
Запросить доступ к реальному времени
Требуемые переменные окружения
SAHMK_API_KEY обязателен для всех запусков сервера (Claude Desktop, Cursor и прямое использование CLI).
Установите его в конфигурации env вашего MCP-клиента или экспортируйте перед запуском sahmk-mcp.
Необязательно: SAHMK_BASE_URL переопределяет хост публичного Developer API по умолчанию.
Хост API
Базовый URL REST по умолчанию: https://api.sahmk.sa/api/v1/ (соответствует SDK sahmk версии 0.16.0).https://app.sahmk.sa/api/v1/ остаётся полностью поддерживаемым совместимым хостом — установите SAHMK_BASE_URL, если он вам нужен:
export SAHMK_BASE_URL="https://app.sahmk.sa/api/v1"Формы путей не изменились (/api/v1/, /api/v2/, /ws/v1/). Маршруты портала/панели управления (/api/developers/*) остаются на app.sahmk.sa и не используются этим MCP.
Установка
pip install sahmk-mcpТребуется sahmk>=0.16.0 для совместимости с текущим MCP-SDK (хост по умолчанию api.sahmk.sa, инструменты глубины рынка, живых сделок и событий).
Безопасность
Устанавливайте API-ключи через переменные окружения (
SAHMK_API_KEY).Никогда не коммитьте ключи в систему контроля версий и не делитесь ими в логах.
Немедленно ротируйте раскрытые ключи на панели управления Sahmk.
Конфигурация
Claude Desktop
Добавьте в ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"sahmk": {
"command": "sahmk-mcp",
"env": {
"SAHMK_API_KEY": "your_api_key"
}
}
}
}Необязательное переопределение совместимого хоста (те же пути на app.sahmk.sa):
{
"mcpServers": {
"sahmk": {
"command": "sahmk-mcp",
"env": {
"SAHMK_API_KEY": "your_api_key",
"SAHMK_BASE_URL": "https://app.sahmk.sa/api/v1"
}
}
}
}Cursor
Добавьте в .cursor/mcp.json:
{
"mcpServers": {
"sahmk": {
"command": "sahmk-mcp",
"env": {
"SAHMK_API_KEY": "your_api_key"
}
}
}
}Необязательное переопределение совместимого хоста:
{
"mcpServers": {
"sahmk": {
"command": "sahmk-mcp",
"env": {
"SAHMK_API_KEY": "your_api_key",
"SAHMK_BASE_URL": "https://app.sahmk.sa/api/v1"
}
}
}
}Запуск напрямую
export SAHMK_API_KEY="your_api_key"
sahmk-mcpОграничения входных данных инструментов
get_market_summary.index:TASIилиNOMU(псевдонимNOMUCпринимается и нормализуется).get_market_movers.type:gainers,losers,volumeилиvalue.get_market_movers.limit: целое число от 1 до 50.get_quote.identifier(предпочтительно): принимает числовой символ, арабское/английское название компании или известный псевдоним.get_quote.symbol(устаревший псевдоним): принимается для обратной совместимости.get_quotes.identifiers(предпочтительно): максимум 50 идентификаторов на запрос.get_quotes.symbols(устаревший псевдоним): принимается для обратной совместимости.get_financials.symbol: предпочитает точный биржевой символ; MCP пытается выполнить разрешение идентификатора через SDK для названий/псевдонимов, когда это возможно.get_financials.periodиget_financials.statement_period: если указаны оба, приоритет имеетperiod.get_financialsподдерживает необязательные сквозные параметры:type,period,statement_period,history,metrics,resultиinclude_partial.Ответ
get_financialsориентирован на блоки отчётности и не включаетmeta.get_ratios.symbol: предпочитает точный биржевой символ; MCP пытается выполнить разрешение идентификатора через SDK для названий/псевдонимов, когда это возможно.get_ratios.history: по умолчаниюlatest.get_ratios.period: по умолчаниюannual.get_ratios.metrics: по умолчаниюcore.compare_symbols.symbols: список символов (предпочтительно) или строка, разделённая запятыми; MCP пытается выполнить разрешение идентификатора через SDK для названий/псевдонимов, когда это возможно.compare_symbols.metrics: по умолчаниюcore.get_ratiosиcompare_symbolsвключают только минимальныйmeta:period,metrics,warnings.Аналитические инструменты не раскрывают внутренние/бэкенд-поля, такие как
applied_profile,planили диагностику источника.get_dividends.symbol: предпочитает точный биржевой символ; MCP пытается выполнить разрешение идентификатора через SDK для названий/псевдонимов, когда это возможно.get_depth.symbol: предпочитает точный биржевой символ; MCP пытается выполнить разрешение идентификатора через SDK для названий/псевдонимов, когда это возможно.get_depth.levels: необязательное целое число от 1 до 20 (по умолчанию на бэкенде обычно 5; подписка может ограничивать ниже запрошенного).get_trades.symbol: предпочитает точный биржевой символ; MCP пытается выполнить разрешение идентификатора через SDK для названий/псевдонимов, когда это возможно.get_trades.limit: необязательное целое число от 1 до 200 (по умолчанию на бэкенде обычно 50; сначала новые).get_trades.events[].side: необязательная сторона сделки, одна изbuy,sellилиnull.get_events.symbol: необязательный фильтр точного биржевого символа; опустите для последних событий по всему рынку.get_events.limit: необязательное целое число от 1 до 100.get_historical.symbol: предпочитает точный биржевой символ; MCP пытается выполнить разрешение идентификатора через SDK для названий/псевдонимов, когда это возможно.companies_list.market:TASIилиNOMU(псевдонимNOMUCпринимается и нормализуется).companies_list.limit: целое число больше 0.companies_list.offset: целое число больше или равно 0.get_historical.interval:1d,1w,1m,30mили60m.Неоднозначные идентификаторы вызывают
AMBIGUOUS_IDENTIFIERс рекомендациями по повторной попытке и кандидатами, когда они доступны.Недействительные идентификаторы и запросы, ограниченные тарифом, возвращают базовую ошибку API.
Примеры вызовов инструментов
Поиск по каталогу компаний:
companies_list(search="aramco")Каталог компаний с нормализацией псевдонима рынка:
companies_list(search="acwa", market="NOMUC")Пагинация каталога компаний:
companies_list(search="bank", limit=50, offset=100)Предпочтительный вызов одиночной котировки:
get_quote(identifier="أرامكو")Устаревший вызов одиночной котировки:
get_quote(symbol="2222")Предпочтительный пакетный вызов котировок:
get_quotes(identifiers=["سبكيم", "كيان"])Устаревший пакетный вызов котировок:
get_quotes(symbols=["2222", "1120"])Финансовая отчётность по точному символу:
get_financials(symbol="1120")Финансовые коэффициенты по умолчанию:
get_ratios(symbol="1120")Расширенные финансовые коэффициенты:
get_ratios(symbol="1120", history="5y", period="quarterly", metrics="extended")Сравнение символов по умолчанию:
compare_symbols(symbols=["1120", "1180", "1010"])Расширенное сравнение символов:
compare_symbols(symbols=["1120", "1180", "1010", "2222"], metrics="extended")Дивиденды по точному символу:
get_dividends(symbol="1120")Глубина рынка по точному символу:
get_depth(symbol="2222")Глубина рынка с уровнями:
get_depth(symbol="2222", levels=10)Последние сделки по точному символу:
get_trades(symbol="2222")Последние сделки с лимитом:
get_trades(symbol="2222", limit=20)Сторона события сделки является дополнительной и необязательной: каждый элемент
events[]может включатьside=buy,sellилиnull.Последние события рынка:
get_events(limit=10)События для одного символа:
get_events(symbol="1120", limit=5)Исторические данные по точному символу:
get_historical(symbol="1120", interval="1d")Исторические данные с явными аргументами дневного диапазона дат:
get_historical(symbol="1120", from_date="2026-01-01", to_date="2026-03-31", interval="1d")Внутридневные исторические данные по точному символу (ограничено тарифом по API-ключу):
get_historical(symbol="1120", interval="60m")Внутридневные исторические данные с явными аргументами диапазона дат:
get_historical(symbol="1120", from_date="2026-05-01", to_date="2026-05-31", interval="60m")
Каталог компаний / поиск символов
Сначала используйте companies_list, чтобы уменьшить количество ошибок 404 из-за недействительных символов перед инструментами, работающими только с символами.
Найдите кандидатов по названию или фрагменту символа:
companies_list(search="aramco")companies_list(search="2222")
При желании ограничьте поиск по рынку:
companies_list(search="acwa", market="NOMUC")(NOMUCнормализуется вNOMU)
Выберите символ из
results, затем вызовите:get_quote(identifier="<symbol>")get_financials(symbol="<symbol>")get_dividends(symbol="<symbol>")get_historical(symbol="<symbol>")
Для циклов пагинации увеличивайте
offsetнаlimit, пока не достигнетеtotal:companies_list(search="bank", limit=100, offset=0)companies_list(search="bank", limit=100, offset=100)продолжайте, пока
offset >= total
Примеры рекомендаций MCP
Пользователь: «سعر الراجحي» -> вызовите
get_quote(identifier="الراجحي").Уточнение: «قوائم الشركة» -> если предыдущий результат включает
resolved_instrument.symbol = "1120", используйте его повторно и вызовитеget_financials(symbol="1120").
Примеры промптов
"Дай мне сводку по TASI и настроение рынка."
"Дай мне лидеров рынка TASI по росту."
"Дай мне лидеров рынка NOMU по объёму."
"Покажи мне производительность секторов."
"Сравни سابك, سبكيم и 2222 по изменению цены и чистой ликвидности."
"Покажи сводку по NOMU на сегодня."
"Получи финансовую отчётность для 2222."
"Получи дивиденды для 2222."
"Покажи книгу заявок / глубину рынка для 2222."
"Покажи последние сделки для 2222."
"Какие последние события по акциям?"
"Получи исторические данные за 1 день для 1120 с 2026-01-01 по 2026-03-31."
"Расскажи о الراجحي и его секторе."
Примечание: get_financials и get_dividends требуют доступа к Sahmk API на тарифе Starter или выше. Если они недоступны для текущего ключа, MCP возвращает соответствующую ошибку API.
Примечание: get_depth ограничен правами доступа — запросить доступ. get_trades и get_events требуют тарифа Pro+. Если они недоступны для текущего ключа, MCP возвращает ошибку API.
Примечание: внутридневные исторические интервалы (30m, 60m) могут быть ограничены тарифным планом. Если они недоступны для текущего ключа, MCP возвращает ошибку API (например, 403 PLAN_LIMIT).
Release Notes
0.8.1: повышение минимального требования к SDKsahmkдо0.16.0.0.8.0: добавлено необязательное полеsideв событияget_trades(buy/sell/null) с обратно совместимым выводом для полезных нагрузок, в которых оно отсутствует.0.7.0: хост публичного Developer API по умолчанию →api.sahmk.sa(требуетсяsahmk>=0.15.0);app.sahmk.saпо-прежнему поддерживается черезSAHMK_BASE_URL.0.6.0: требуетсяsahmk>=0.14.0; добавленget_tradesдля последних живых сделок (Pro+).0.5.1: добавлена документация со ссылкой на запрос прав доступа к рыночной глубине в README.0.5.0: требуетсяsahmk>=0.13.0; добавленыget_depth(стакан заявок) иget_events(сводки событий на основе ИИ, Pro+).0.4.7: удалёнinclude_qualityиз публичного контракта инструментаget_financials, нормализованы эквивалентные арабо-индийские/ASCII цифровые вводы перед проверками конфликтов идентификаторов, улучшен UX формы Glama с помощью селекторов с перечислением для стабильных опций коэффициентов/периодов.0.4.6: добавлен запасной вариант поиска идентификатора на основе SDK дляget_companyи инструментов, работающих с символами (get_financials,get_ratios,compare_symbols,get_dividends,get_historical), когда ввод имени/псевдонима не позволяет выполнить прямой поиск символа.0.4.5: приведение кsahmk>=0.11.0; расширена поддержкаget_historical.intervalдо30m/60m; документировано поведение ограничения внутридневных данных тарифным планом.0.4.4: документация: уточнены официальные каналы распространения (только GitHub + PyPI)0.4.3: приведение контракта вывода MCP в соответствие: у финансовых данных нетmeta;metaаналитики ограниченоperiod,metricsиwarnings.0.4.2: добавлен запасной вариант совместимости имён методов SDK для аналитики (get_ratios/ratios,compare_symbols/compare).0.4.1: требуетсяsahmk>=0.9.1в зависимостях пакета и проверке версии во время выполнения.0.4.0: добавлены инструменты аналитических коэффициентов и сравнения; улучшены необязательные параметры финансовых данных.
License
MIT — см. LICENSE
Maintenance
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server that provides comprehensive financial insights and analysis by leveraging real-time market data, news, and advanced analytics for stocks, options, financial statements, and economic indicators.1750PythonMIT

equivault-mcpofficial
AlicenseBqualityDmaintenanceOfficial MCP server for EquiVault — AI-powered equity research for Claude. 38 tools covering company fundamentals, financials, ratios, screening, peer comparison, investment narrative, signals intelligence, alerts, briefs, portfolio analytics, insider transactions, and earnings quality. Tier-aware with upgrade prompts. Install: npx equivault-mcp.38151MIT- AlicenseAqualityBmaintenanceComprehensive MCP server for real-time stock, cryptocurrency, options, and fundamental analysis, including SEC filings and insider trading data.2633MIT
- AlicenseNot gradedqualityAmaintenanceOfficial MCP server for the FinancialReports API. Provides direct access to regulatory filings, financial data, and corporate information from listed companies worldwide via 15 curated tools.2MIT
Related MCP Connectors
Official MCP server for OmniDimension. Drive voice agents, dispatch calls, and run bulk campaigns.
Official MCP server for Lovable, the AI-powered full-stack app builder.
Official MCP server for Qase — manage test cases, runs, suites, defects via AI tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/sahmk-sa/sahmk-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server