Skip to main content
Glama
takarka

eds-mcp-server

by takarka

Локальный EDS MCP Server (ЭЦП НУЦ РК)

Этот проект представляет собой локальный MCP-сервер (Model Context Protocol) для работы с казахстанской электронной цифровой подписью (ЭЦП НУЦ РК). Он позволяет AI-агентам (таким как Claude Desktop, Cursor, Claude Code и др.) безопасно подписывать данные и файлы на вашем компьютере, используя Kalkan SDK.

Принцип безопасности: Ваш приватный ключ (.p12 / .pfx) и пароль от него никогда не передаются AI-агенту. Все операции подписи происходят локально на вашем компьютере. При запросе подписи от AI-агента всплывает системное окно macOS (AppleScript) для ввода пароля и подтверждения операции.


Требования к системе

  1. Java Runtime Environment (JRE) / JDK (версия 8 или новее) — необходима для выполнения криптографических операций через официальный Java-пакет Kalkan SDK (kalkancrypt.jar). Убедитесь, что команда java -version доступна в терминале.

  2. Node.js (версия 18 или новее) и npm — для запуска и работы MCP-сервера.

  3. macOS — проект настроен на отображение всплывающих окон подтверждения (AppleScript-диалоги) для безопасного ввода пароля.


Related MCP server: PiQrypt MCP Server

Установка и сборка проекта

Перед использованием сервер необходимо скомпилировать. Для этого выполните в корневой директории проекта следующие команды:

  1. Установите зависимости:

    npm install
  2. Соберите Java-компонент (Signer) и TypeScript-пакеты:

    npm run build

    Эта команда скомпилирует KalkanSigner.java в директорию native/kalkan/bin и транспилирует TypeScript-код пакетов и приложения в dist директории.


Настройка MCP-клиентов

Чтобы ваш AI-агент мог использовать этот сервер, добавьте его в конфигурационный файл вашего MCP-клиента.

1. Claude Desktop (macOS)

Откройте файл конфигурации Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json

Добавьте сервер в секцию mcpServers:

{
  "mcpServers": {
    "eds-mcp-server": {
      "command": "node",
      "args": [
        "/Users/anarbek/Documents/personal/project/eds-mcp-server/apps/mcp-server/dist/index.js"
      ]
    }
  }
}

Примечание: Укажите точный абсолютный путь к файлу /apps/mcp-server/dist/index.js в вашей системе.

2. Cursor

  1. Перейдите в Settings (Настройки) -> Features -> MCP.

  2. Нажмите кнопку + Add New MCP Server.

  3. Установите параметры:

    • Name: eds-mcp-server

    • Type: stdio

    • Command: node /Users/anarbek/Documents/personal/project/eds-mcp-server/apps/mcp-server/dist/index.js (укажите ваш абсолютный путь к файлу)

  4. Нажмите Save.

3. Claude Code

Запустите следующую команду в консоли:

claude mcp add eds-mcp-server node /Users/anarbek/Documents/personal/project/eds-mcp-server/apps/mcp-server/dist/index.js

4. Antigravity IDE

Настроить сервер можно двумя способами:

  • Через интерфейс (рекомендуется):

    1. Откройте панель агента (Agent Panel).

    2. Перейдите на вкладку Integrations (или выберите пункт Manage MCP Servers в меню ... в правом верхнем углу панели агента).

    3. Нажмите кнопку добавления нового MCP-сервера и заполните параметры (Name: eds-mcp-server, Command: node, Args: ["/Users/anarbek/Documents/personal/project/eds-mcp-server/apps/mcp-server/dist/index.js"]).

  • Вручную через файл конфигурации: Откройте или создайте файл ~/.gemini/antigravity-ide/mcp_config.json и добавьте в секцию mcpServers:

    {
      "mcpServers": {
        "eds-mcp-server": {
          "command": "node",
          "args": [
            "/Users/anarbek/Documents/personal/project/eds-mcp-server/apps/mcp-server/dist/index.js"
          ]
        }
      }
    }

Конфигурация сервера

При первом запуске сервер автоматически создаст конфигурационный файл в домашней директории пользователя: ~/.eds-mcp/config.json

Пример конфигурации:

{
  "provider": "kalkan",
  "security": {
    "requireConfirmation": true,
    "allowedDirectories": [
      "~/Documents",
      "~/.eds-mcp/workspace"
    ]
  },
  "signing": {
    "defaultFormat": "CMS",
    "detached": true
  },
  "audit": {
    "enabled": true,
    "path": "~/.eds-mcp/logs/audit.log"
  }
}

Описание параметров:

  • security.requireConfirmation (true / false): При значении true (рекомендуется) перед каждой операцией подписи на экране будет появляться системное диалоговое окно с запросом пароля и информацией о файле (имя, размер, SHA-256 хэш и данные сертификата). При значении false подпись будет происходить без подтверждения пользователя (небезопасно).

  • security.allowedDirectories: Массив путей, из которых сервер имеет право читать/подписывать файлы. Попытка подписать файл вне этих директорий вызовет ошибку безопасности. Вы можете добавить сюда рабочие директории ваших проектов (например, ["~/Documents", "/Users/anarbek/Projects"]).

  • audit.enabled и audit.path: Включает ведение журнала аудита операций в указанный файл.


Доступные инструменты (Tools) для AI

После подключения сервера AI-агент получит доступ к следующим инструментам:

  • eds_list_certificates — возвращает список сертификатов из хранилища .p12.

    • Аргументы: p12Path (путь к файлу ключа).

  • eds_get_certificate — возвращает подробную информацию о выбранном по алиасу сертификате.

    • Аргументы: p12Path, alias.

  • eds_sign_data — подписывает переданную Base64 строку.

    • Аргументы: p12Path, alias, dataBase64, detached (optional).

  • eds_sign_file — подписывает локальный файл и создает подпись в формате .p7s.

    • Аргументы: p12Path, alias, filePath, destPath (optional), detached (optional).

  • eds_verify_signature — проверяет CMS/PKCS#7 подпись для указанного файла.

    • Аргументы: signatureFile (путь к файлу подписи), dataFile (путь к оригинальным данным, если подпись отсоединенная).


Ручной запуск и отладка

Для отладки сервера или просмотра выводимых ошибок вы можете запустить его напрямую в терминале:

npm start

Так как MCP-сервер взаимодействует через stdio, все диагностические сообщения выводятся в stderr, а в stdout транслируется JSON-RPC трафик.


Как отключить или удалить сервер

Если вам больше не нужен сервер или вы хотите его временно отключить:

  1. В Claude Desktop: Удалите или закомментируйте блок "eds-mcp-server" в конфигурационном файле ~/Library/Application Support/Claude/claude_desktop_config.json. После этого перезапустите Claude Desktop.

  2. В Cursor: Перейдите в Settings -> Features -> MCP, найдите сервер eds-mcp-server и нажмите кнопку Delete.

  3. В Claude Code: Удалите сервер из списка MCP с помощью команды:

    claude mcp remove eds-mcp-server
  4. В Antigravity IDE:

    • В интерфейсе: перейдите на вкладку Integrations в панели агента и удалите или отключите eds-mcp-server.

    • В файле конфигурации: удалите блок "eds-mcp-server" из файла ~/.gemini/antigravity-ide/mcp_config.json.

  5. Завершение фонового процесса: Если сервер был запущен в фоновом режиме или завис, найдите и завершите его процессы с помощью команды:

    pkill -f "node.*mcp-server/dist/index.js"

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides cryptographic identity and signing capabilities for AI agents, enabling them to create persistent identities, sign actions with private keys, and allow external systems to verify the authenticity and provenance of agent-initiated operations.
    4
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to sign decisions with post-quantum cryptographic proofs and maintain secure audit trails for compliance. It provides tools for stamping events, verifying chain integrity, and exporting audit data across industries like finance and healthcare.
    4
    87
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Cryptographic proof of consent for AI agents. Sign before you act. Policy engine enforces spending caps, action whitelists, and escalation rules. Independently verifiable by anyone.
    10
    2
    Apache 2.0

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/takarka/eds-mcp-server'

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