mcpField
D
Discrete Structures

Discrete Structures

Local
github.com/ZohaibCodezScience & Education1Updated 42w ago

About Discrete Structures

Discrete Structures is an MCP server for students, educators, and developers working with discrete mathematics and computer science. It combines logic, number theory, algorithm visualizations, and cryptography tools, with step-by-step explanations.

Key features

  1. 01Evaluate and transform Boolean expressions
  2. 02Compute number-theory operations
  3. 03Visualize sorting and graph algorithms
  4. 04Encrypt and decrypt with common ciphers
  5. 05Generate RSA key pairs

Use cases

  1. 01Teach discrete mathematics concepts
  2. 02Explore algorithm steps and search paths
  3. 03Practice number theory and cryptography
  4. 04Support computer science coursework

MCP support

Exposes mathematical, algorithm, and cryptography tools to MCP clients, including Claude Desktop, Cline, and Zed.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"zohaibcodez-discrete-structures": {
"command": "uvx",
"args": [
"discrete-structures-mcp"
]
}
}
}
Run commanduvx discrete-structures-mcp

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypidiscrete-structures-mcp0.1.4

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

🎓 Discrete Structures MCP Server

PyPI version Python Version MCP Registry License: MIT Downloads

Professional-grade AI tools for discrete mathematics, algorithms, and cryptography

Installation • Features • Quick Start • Documentation • Examples


🚀 Overview

Discrete Structures MCP Server is a comprehensive Model Context Protocol server that brings 21 powerful mathematical tools to AI assistants like Claude Desktop, Cline, and Zed. Perfect for students, educators, and developers working with discrete mathematics, data structures, algorithms, and cryptography.

Why Choose This Server?
  • 🎯 21 Production-Ready Tools across 4 categories
  • 📚 Educational Focus with step-by-step visualizations
  • 🔒 Enterprise Cryptography (RSA, AES, Caesar, Vigenere)
  • 📊 Algorithm Visualizations for sorting and graph algorithms
  • 🧮 Boolean Logic with CNF/DNF conversion
  • 🔢 Number Theory including prime factorization and modular arithmetic
  • ⚡ Fast Installation via uvx discrete-structures-mcp
  • 🌐 MCP Registry Listed for easy discovery

✨ Features

🧮 Logic Tools (5 tools)
  • evaluate_boolean - Evaluate boolean expressions with truth tables
  • generate_truth_table - Complete truth table generation
  • simplify_boolean - Boolean algebra simplification
  • convert_to_cnf - Conjunctive Normal Form conversion
  • convert_to_dnf - Disjunctive Normal Form conversion
🔢 Number Theory Tools (5 tools)
  • is_prime - Primality testing with explanations
  • prime_factors - Complete prime factorization
  • gcd_lcm - Greatest Common Divisor & Least Common Multiple
  • modular_arithmetic - Modular operations (add, multiply, power)
  • euler_totient - Euler's φ function calculation
📊 Algorithm Visualizers (6 tools)
  • visualize_bubble_sort - O(n²) sorting with comparisons
  • visualize_quick_sort - O(n log n) divide-and-conquer
  • visualize_merge_sort - Stable merge sort visualization
  • visualize_binary_search - O(log n) search algorithm
  • visualize_dijkstra - Shortest path in weighted graphs
  • visualize_bfs_dfs - Graph traversal algorithms
🔐 Cryptography Tools (5 tools)
  • caesar_cipher - Classical shift cipher (educational)
  • vigenere_cipher - Polyalphabetic substitution
  • rsa_encrypt_decrypt - RSA public-key cryptography
  • aes_encrypt_decrypt - AES-256 symmetric encryption
  • generate_rsa_keys - Secure RSA key pair generation

📦 Installation

⚡ Quick Install (Recommended)
# Install and run directly with uvx
uvx discrete-structures-mcp
📥 Install with pip
# Install globally
pip install discrete-structures-mcp

# Run the server
discrete-structures-mcp
🛠️ Development Installation
# 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

🎯 Quick Start

Usage with Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "discrete-structures": {
      "command": "uvx",
      "args": ["discrete-structures-mcp"]
    }
  }
}
Usage with Other MCP Clients

Compatible with any MCP client:

  • Cline - VS Code extension
  • Zed - Modern code editor
  • Continue - AI code assistant
  • Custom MCP clients via Python SDK

💻 Example Tool Calls

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)

💻 Example Tool Calls

🔢 Number Theory Examples
Calculate GCD and LCM
# 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": "..."}
Prime Factorization
result = await session.call_tool("prime_factors", {
    "number": "84"
})
# Output: {"factors": [2, 2, 3, 7], "factorization": "2² × 3 × 7"}
Modular Arithmetic
result = await session.call_tool("modular_arithmetic", {
    "operation": "power",
    "base": "3",
    "exponent": "5",
    "modulus": "7"
})
# Output: {"result": 5, "explanation": "3^5 mod 7 = 5"}
🧮 Boolean Logic Examples
Generate Truth Table
result = await session.call_tool("generate_truth_table", {
    "expression": "(A & B) | (~A & C)"
})
# Returns: Complete truth table with all input combinations
Simplify Boolean Expression
result = await session.call_tool("simplify_boolean", {
    "expression": "(A & B) | (A & ~B)"
})
# Output: {"simplified": "A", "steps": ["..."]}
Convert to CNF
result = await session.call_tool("convert_to_cnf", {
    "expression": "(A | B) & (C | D)"
})
# Output: Expression in Conjunctive Normal Form
📊 Algorithm Visualization Examples
Visualize Bubble Sort
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
Binary Search
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's Algorithm
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
🔐 Cryptography Examples
RSA Encryption
# 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 Encryption
result = await session.call_tool("aes_encrypt_decrypt", {
    "action": "encrypt",
    "text": "Sensitive Data",
    "key": "my-secret-key-32-characters-long"
})
# Output: {"ciphertext": "...", "iv": "...", "tag": "..."}
Caesar Cipher
result = await session.call_tool("caesar_cipher", {
    "action": "encrypt",
    "text": "HELLO",
    "shift": "3"
})
# Output: {"result": "KHOOR", "explanation": "Each letter shifted by 3"}

🎓 Use Cases

  • Computer Science Education - Teach algorithms and data structures
  • Cryptography Learning - Understand encryption methods
  • Mathematics Research - Number theory and discrete math
  • Algorithm Analysis - Visualize complexity and performance
  • Code Interviews - Practice common algorithmic problems
  • Academic Projects - Implement mathematical concepts

🏗️ Technical Stack

  • Language: Python 3.11+
  • Framework: Model Context Protocol (MCP)
  • Math Libraries: SymPy, NumPy
  • Crypto: Python Cryptography library
  • Graphs: NetworkX
  • Build: UV package manager

📊 Performance

  • Startup Time: < 2 seconds
  • Response Time: < 100ms for most operations
  • Memory: < 50MB baseline
  • Concurrency: Async/await support

🔒 Security Note

Educational Purpose: Caesar and Vigenere ciphers are for learning only. Use AES or RSA for real-world encryption.

🤝 Contributing

We welcome contributions! Here's how to get started:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

See CONTRIBUTING.md for detailed guidelines.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🔗 Links & Resources

Official Links
Community
MCP Resources

📈 Project Stats

GitHub stars GitHub forks GitHub issues GitHub pull requests

🙏 Acknowledgments

  • Model Context Protocol team at Anthropic
  • SymPy and NumPy communities
  • Python Cryptography developers
  • NetworkX graph library maintainers
  • All contributors and users

📞 Support

  • 📧 Email: Open an issue for support
  • 💬 Discussions: Use GitHub Discussions
  • 🐛 Bugs: Report via Issues
  • 💡 Features: Request via Issues with enhancement label

Made with ❤️ for the discrete mathematics and computer science community

⭐ Star this repo if you find it useful! ⭐

Report Bug · Request Feature · Contribute

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.