Skip to main content

🎓 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

Metadata

Release files for discrete-structures-mcp 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for discrete-structures-mcp 0.1.4
File Size Uploaded
discrete_structures_mcp-0.1.4.tar.gz 6.8 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for discrete-structures-mcp 0.1.4
File Interpreter ABI Platform
discrete_structures_mcp-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 6.8 MB

Release files / discrete_structures_mcp-0.1.4.tar.gz

Download URL discrete_structures_mcp-0.1.4.tar.gz
Size 6.8 MB
Tags Source
SHA-256 checksum
How to use checksums
4edbbb0e8bc19ff3ef93ca77740016a6afd9ea355ad82595b59b4730a3f30548
BLAKE2b-256 checksum
How to use checksums
6e5a5ede21a84ef190b5a7b5d55ab982aeea6075da9c953ac8e680d0e6a39e33
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Release files / discrete_structures_mcp-0.1.4-py3-none-any.whl

Download URL discrete_structures_mcp-0.1.4-py3-none-any.whl
Size 12.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ce7e045016be076f3a3b029a3bc1330a989739c1d02083d6b533d567e40a8508
BLAKE2b-256 checksum
How to use checksums
130c9003ac4165a54639aa99a78a58488e40e135893a0f6f4ef1d41552e6da15
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page