mcpField
D
Discrete Structures

Discrete Structures

本地服务
github.com/ZohaibCodez科研与教育142 周前更新

关于 Discrete Structures

Discrete Structures 是面向离散数学和计算机科学领域学生、教师与开发者的 MCP 服务。它整合逻辑、数论、算法可视化和密码学工具,并提供分步说明。

主要功能

  1. 01求值与转换布尔表达式
  2. 02计算数论运算
  3. 03可视化排序和图算法
  4. 04使用常见密码加解密
  5. 05生成 RSA 密钥对

适用场景

  1. 01讲授离散数学概念
  2. 02探索算法步骤和搜索路径
  3. 03练习数论与密码学
  4. 04辅助计算机科学课程学习

MCP 相关

向 MCP 客户端提供数学、算法和密码学工具,支持 Claude Desktop、Cline 和 Zed 等客户端。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 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

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

🎓 Discrete Structures MCP Server

PyPI version Python Version MCP Registry License: MIT Downloads

面向离散数学、算法和密码学的专业级 AI 工具

安装 • 功能 • 快速开始 • 文档 • 工具调用示例


🚀 概述

Discrete Structures MCP Server 是一个全面的 Model Context Protocol 服务,为 Claude Desktop、Cline 和 Zed 等 AI 助手提供 21 种强大的数学工具。非常适合学习或教授离散数学、数据结构、算法和密码学的学生、教育工作者和开发者。

为什么选择此服务?
  • 🎯 21 种可用于生产环境的工具,涵盖 4 个类别
  • 📚 注重教育,提供分步可视化
  • 🔒 企业级密码学(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
Dijkstra 算法
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. Fork 此代码库
  2. 创建 功能分支(git checkout -b feature/amazing-feature)
  3. 提交 更改(git commit -m 'Add amazing feature')
  4. 推送 到分支(git push origin feature/amazing-feature)
  5. 创建 Pull Request

详细指南请参阅 CONTRIBUTING.md。

📄 许可证

本项目采用 MIT License 授权,详情请参阅 LICENSE 文件。

🔗 链接与资源

官方链接
社区
MCP 资源

📈 项目统计

GitHub stars GitHub forks GitHub issues GitHub pull requests

🙏 致谢

  • Anthropic 的 Model Context Protocol 团队
  • SymPy 和 NumPy 社区
  • Python Cryptography 开发者
  • NetworkX 图形库维护者
  • 所有贡献者和用户

📞 支持

  • 📧 电子邮件:提交 issue 获取支持
  • 💬 讨论:使用 GitHub Discussions
  • 🐛 Bug:通过 Issues 报告
  • 💡 功能:通过 Issues 提交请求,并添加 enhancement 标签

为离散数学和计算机科学社区倾心打造 ❤️

⭐ 如果觉得有用,请为此仓库加星! ⭐

报告 Bug · 请求功能 · 参与贡献

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。