关于 Discrete Structures
Discrete Structures 是面向离散数学和计算机科学领域学生、教师与开发者的 MCP 服务。它整合逻辑、数论、算法可视化和密码学工具,并提供分步说明。
主要功能
- 01求值与转换布尔表达式
- 02计算数论运算
- 03可视化排序和图算法
- 04使用常见密码加解密
- 05生成 RSA 密钥对
适用场景
- 01讲授离散数学概念
- 02探索算法步骤和搜索路径
- 03练习数论与密码学
- 04辅助计算机科学课程学习
MCP 相关
向 MCP 客户端提供数学、算法和密码学工具,支持 Claude Desktop、Cline 和 Zed 等客户端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
🚀 概述
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 种)
🔢 数论工具(5 种)
|
📊 算法可视化工具(6 种)
🔐 密码学工具(5 种)
|
📦 安装
⚡ 快速安装(推荐)
# 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 客户端:
💻 工具调用示例
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。
🤝 贡献
欢迎参与贡献!以下是开始的方法:
- Fork 此代码库
- 创建 功能分支(
git checkout -b feature/amazing-feature) - 提交 更改(
git commit -m 'Add amazing feature') - 推送 到分支(
git push origin feature/amazing-feature) - 创建 Pull Request
详细指南请参阅 CONTRIBUTING.md。
📄 许可证
本项目采用 MIT License 授权,详情请参阅 LICENSE 文件。
🔗 链接与资源
官方链接
- 🏠 主页:GitHub 代码库
- 📦 PyPI 软件包:discrete-structures-mcp
- 🌐 MCP 注册表:官方列表
- 📝 文档:README
- 🐛 问题跟踪器:报告错误
社区
- 💬 讨论:GitHub 讨论区
- 📢 公告:关注代码库以获取更新
- 🤝 贡献:参阅贡献指南
MCP 资源
- 📖 MCP 文档:modelcontextprotocol.io
- 🛠️ MCP SDK:Python SDK
- 🌟 MCP 服务:社区服务
📈 项目统计
🙏 致谢
- Anthropic 的 Model Context Protocol 团队
- SymPy 和 NumPy 社区
- Python Cryptography 开发者
- NetworkX 图形库维护者
- 所有贡献者和用户
📞 支持
- 📧 电子邮件:提交 issue 获取支持
- 💬 讨论:使用 GitHub Discussions
- 🐛 Bug:通过 Issues 报告
- 💡 功能:通过 Issues 提交请求,并添加 enhancement 标签
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。