mcpField
D
Discrete Structures

Discrete Structures

ローカル
github.com/ZohaibCodez科学・教育142 週間前に更新

Discrete Structures について

Discrete Structures は、離散数学やコンピューターサイエンスに取り組む学生、教育者、開発者向けの MCP サーバーです。論理、数論、アルゴリズムの可視化、暗号ツールをまとめ、手順も説明します。

主な機能

  1. 01ブール式の評価と変換
  2. 02数論演算の計算
  3. 03ソートとグラフアルゴリズムの可視化
  4. 04一般的な暗号方式での暗号化と復号
  5. 05RSA 鍵ペアの生成

活用シーン

  1. 01離散数学の概念を教える
  2. 02アルゴリズムの手順や探索経路を確認する
  3. 03数論と暗号を練習する
  4. 04コンピューターサイエンスの課題を支援する

MCP 対応

Claude Desktop、Cline、Zed などの MCP クライアントに、数学、アルゴリズム、暗号のツールを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"zohaibcodez-discrete-structures": {
"command": "uvx",
"args": [
"discrete-structures-mcp"
]
}
}
}
起動コマンドuvx discrete-structures-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypidiscrete-structures-mcp0.1.4

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

🎓 離散構造 MCP サーバー

PyPI version Python Version MCP Registry License: MIT Downloads

離散数学、アルゴリズム、暗号技術のためのプロフェッショナル品質の AI ツール

インストール • 機能 • クイックスタート • ドキュメント • 使用例


🚀 概要

Discrete Structures MCP Server は、Claude Desktop、Cline、Zed などの AI アシスタントに21 個の強力な数学ツールを提供する、包括的な Model Context Protocol サーバーです。離散数学、データ構造、アルゴリズム、暗号技術に取り組む学生、教育者、開発者に最適です。

このサーバーを選ぶ理由
  • 🎯 4 つのカテゴリにわたる21 個の実用レベルのツール
  • 📚 段階的なビジュアライゼーションを備えた教育重視の設計
  • 🔒 エンタープライズ向け暗号技術(RSA、AES、Caesar、Vigenere)
  • 📊 ソートとグラフアルゴリズムのアルゴリズムビジュアライゼーション
  • 🧮 CNF/DNF 変換に対応したブール論理
  • 🔢 素因数分解やモジュラー演算を含む数論
  • ⚡ uvx discrete-structures-mcp による高速インストール
  • 🌐 見つけやすいようにMCP Registry に掲載

✨ 機能

🧮 論理ツール(5 ツール)
  • evaluate_boolean - 真理値表を使ってブール式を評価
  • generate_truth_table - 完全な真理値表を生成
  • simplify_boolean - ブール代数による簡約
  • convert_to_cnf - 連言標準形への変換
  • convert_to_dnf - 選言標準形への変換
🔢 数論ツール(5 ツール)
  • is_prime - 説明付きの素数判定
  • prime_factors - 完全な素因数分解
  • gcd_lcm - 最大公約数と最小公倍数
  • modular_arithmetic - モジュラー演算(加算、乗算、累乗)
  • euler_totient - オイラーの φ 関数を計算
📊 アルゴリズムのビジュアライザー(6 ツール)
  • visualize_bubble_sort - 比較を表示する O(n²) ソート
  • visualize_quick_sort - O(n log n) の分割統治法
  • visualize_merge_sort - 安定したマージソートのビジュアライゼーション
  • visualize_binary_search - O(log n) の探索アルゴリズム
  • visualize_dijkstra - 重み付きグラフの最短経路
  • visualize_bfs_dfs - グラフ探索アルゴリズム
🔐 暗号技術ツール(5 ツール)
  • caesar_cipher - 古典的なシフト暗号(学習用)
  • vigenere_cipher - 多表式換字暗号
  • rsa_encrypt_decrypt - RSA 公開鍵暗号
  • aes_encrypt_decrypt - AES-256 共通鍵暗号化
  • generate_rsa_keys - 安全な RSA 鍵ペアの生成

📦 インストール

⚡ クイックインストール(推奨)
# Install and run directly with uvx
uvx discrete-structures-mcp
📥 pip でインストール
# Install globally
pip install discrete-structures-mcp

# Run the server
discrete-structures-mcp
🛠️ 開発用インストール
# Clone the repository
git clone https://github.com/ZohaibCodez/discrete-structures-ai-platform.git
cd discrete-structures-ai-platform/mcp-server

# Install with uv
uv sync

# Run locally
uv run discrete-structures-mcp

🎯 クイックスタート

Claude Desktop での使用

claude_desktop_config.json に追加します。

{
  "mcpServers": {
    "discrete-structures": {
      "command": "uvx",
      "args": ["discrete-structures-mcp"]
    }
  }
}
その他の MCP クライアントでの使用

あらゆる MCP クライアントに対応しています。

  • Cline - VS Code 拡張機能
  • Zed - モダンなコードエディター
  • Continue - AI コードアシスタント
  • Python SDK 経由のカスタム MCP クライアント

💻 ツール呼び出しの例

from mcp.client.session import ClientSession
from mcp.client.stdio import StdioServerParameters, stdio_client

server_params = StdioServerParameters(
    command="uvx",
    args=["discrete-structures-mcp"]
)

async with stdio_client(server_params) as (read, write):
    async with ClientSession(read, write) as session:
        await session.initialize()
        
        # List available tools
        tools = await session.list_tools()
        print([tool.name for tool in tools.tools])
        
        # Call a tool
        result = await session.call_tool("gcd_lcm", {"numbers": "48,18"})
        print(result)

💻 ツール呼び出しの例

🔢 数論の例
最大公約数と最小公倍数を計算する
# Find greatest common divisor and least common multiple
result = await session.call_tool("gcd_lcm", {
    "numbers": "48,18,24"
})
# Output: {"gcd": 6, "lcm": 144, "explanation": "..."}
素因数分解
result = await session.call_tool("prime_factors", {
    "number": "84"
})
# Output: {"factors": [2, 2, 3, 7], "factorization": "2² × 3 × 7"}
モジュラー演算
result = await session.call_tool("modular_arithmetic", {
    "operation": "power",
    "base": "3",
    "exponent": "5",
    "modulus": "7"
})
# Output: {"result": 5, "explanation": "3^5 mod 7 = 5"}
🧮 ブール論理の例
真理値表を生成する
result = await session.call_tool("generate_truth_table", {
    "expression": "(A & B) | (~A & C)"
})
# Returns: Complete truth table with all input combinations
ブール式を簡略化する
result = await session.call_tool("simplify_boolean", {
    "expression": "(A & B) | (A & ~B)"
})
# Output: {"simplified": "A", "steps": ["..."]}
CNF に変換する
result = await session.call_tool("convert_to_cnf", {
    "expression": "(A | B) & (C | D)"
})
# Output: Expression in Conjunctive Normal Form
📊 アルゴリズム可視化の例
バブルソートを可視化する
result = await session.call_tool("visualize_bubble_sort", {
    "array": "64,34,25,12,22,11,90"
})
# Returns: Step-by-step sorting with comparisons and swaps
二分探索
result = await session.call_tool("visualize_binary_search", {
    "array": "1,3,5,7,9,11,13,15",
    "target": "7"
})
# Output: Search path with index calculations
ダイクストラ法
result = await session.call_tool("visualize_dijkstra", {
    "graph": "A-B:4,A-C:2,B-C:1,B-D:5,C-D:8",
    "start": "A",
    "end": "D"
})
# Returns: Shortest path with distances
🔐 暗号化の例
RSA 暗号化
# Generate keys
keys = await session.call_tool("generate_rsa_keys", {
    "key_size": "2048"
})

# Encrypt message
encrypted = await session.call_tool("rsa_encrypt_decrypt", {
    "action": "encrypt",
    "message": "Hello World",
    "public_key": keys["public_key"]
})

# Decrypt message
decrypted = await session.call_tool("rsa_encrypt_decrypt", {
    "action": "decrypt",
    "ciphertext": encrypted["ciphertext"],
    "private_key": keys["private_key"]
})
AES 暗号化
result = await session.call_tool("aes_encrypt_decrypt", {
    "action": "encrypt",
    "text": "Sensitive Data",
    "key": "my-secret-key-32-characters-long"
})
# Output: {"ciphertext": "...", "iv": "...", "tag": "..."}
シーザー暗号
result = await session.call_tool("caesar_cipher", {
    "action": "encrypt",
    "text": "HELLO",
    "shift": "3"
})
# Output: {"result": "KHOOR", "explanation": "Each letter shifted by 3"}

🎓 ユースケース

  • コンピューターサイエンス教育 - アルゴリズムとデータ構造を教える
  • 暗号学習 - 暗号化方式を理解する
  • 数学研究 - 数論と離散数学
  • アルゴリズム解析 - 計算量とパフォーマンスを可視化する
  • コーディング面接 - よくあるアルゴリズム問題を練習する
  • 学術プロジェクト - 数学的概念を実装する

🏗️ 技術スタック

  • 言語: Python 3.11+
  • フレームワーク: Model Context Protocol (MCP)
  • 数学ライブラリ: SymPy、NumPy
  • 暗号化: Python Cryptography ライブラリ
  • グラフ: NetworkX
  • ビルド: UV パッケージマネージャー

📊 パフォーマンス

  • 起動時間: < 2 秒
  • 応答時間: ほとんどの操作で < 100ms
  • メモリ: ベースラインで < 50MB
  • 並行処理: Async/await をサポート

🔒 セキュリティに関する注意

教育目的: シーザー暗号とヴィジュネル暗号は学習用です。実際の暗号化には AES または RSA を使用してください。

🤝 貢献

貢献を歓迎します!始めるには、以下の手順に従ってください。

  1. フォークする
  2. 機能ブランチを作成する(git checkout -b feature/amazing-feature)
  3. 変更をコミットする(git commit -m 'Add amazing feature')
  4. ブランチにプッシュする(git push origin feature/amazing-feature)
  5. プルリクエストを作成する

詳しいガイドラインについては、CONTRIBUTING.md を参照してください。

📄 ライセンス

このプロジェクトは MIT ライセンスの下で公開されています。詳細については、LICENSE ファイルを参照してください。

🔗 リンクとリソース

公式リンク
コミュニティ
  • 💬 ディスカッション: GitHub Discussions
  • 📢 お知らせ: リポジトリをウォッチして最新情報を確認してください
  • 🤝 貢献: 貢献ガイドを参照してください
MCP リソース

📈 プロジェクトの統計

GitHub のスター数 GitHub のフォーク数 GitHub の課題数 GitHub のプルリクエスト数

🙏 謝辞

  • Anthropic の Model Context Protocol チーム
  • SymPy と NumPy のコミュニティ
  • Python Cryptography の開発者
  • NetworkX グラフライブラリのメンテナー
  • すべての貢献者とユーザー

📞 サポート

  • 📧 メール:サポートについては Issue を作成してください
  • 💬 ディスカッション:GitHub Discussions をご利用ください
  • 🐛 バグ:Issues から報告してください
  • 💡 機能:enhancement ラベルを付けて Issues からリクエストしてください

離散数学とコンピューターサイエンスのコミュニティのために、❤️を込めて作成しました

⭐ 役に立った場合は、このリポジトリにスターを付けてください! ⭐

バグを報告 · 機能をリクエスト · 貢献する

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。