Differentiation MCP Server
A Model Context Protocol (MCP) server that provides comprehensive mathematical differentiation capabilities using both symbolic computation (SymPy) and automatic differentiation (autograd).
Features
Differentiation Tools
The server provides six powerful differentiation tools:
- differentiate_symbolic - Compute exact symbolic derivatives using SymPy
- Supports any order of derivatives
- Automatic simplification
- LaTeX output for mathematical notation
- differentiate_numerical - Numerical derivatives using autograd
- First and second order derivatives
- Evaluation at specific points
- High precision numerical computation
- partial_derivatives - Multivariable function differentiation
- First-order partials for all variables
- Mixed partial derivatives
- Support for any number of variables
- gradient_vector - Gradient computation for multivariable functions
- Symbolic gradient vectors
- Point evaluation capabilities
- LaTeX formatted output
- chain_rule - Application of the chain rule for composite functions
- Step-by-step breakdown
- Automatic substitution and simplification
- Educational explanations
- implicit_differentiation - Differentiation of implicit equations
- Handles equations of the form F(x,y) = 0
- Automatic application of implicit differentiation rules
- Clear step-by-step solutions
Prompts
The server provides educational prompts:
- differentiation-help: Get guidance on which tool to use for different types of problems
- calculus-problem-solver: Structured approach to solving calculus problems
Dependencies
mcp- Model Context Protocol frameworkautograd- Automatic differentiation librarysympy- Symbolic mathematics librarynumpy- Numerical operations
Installation and Setup
Prerequisites
- Python 3.12 or higher
- Virtual environment (created automatically by the project)
Configuration for Claude Desktop
Windows
Add to %APPDATA%/Claude/claude_desktop_config.json:
{
"mcpServers": {
"differentiation-server": {
"command": "python",
"args": ["-m", "differentiation_server"],
"cwd": "c:\\Users\\shawn\\OneDrive\\Desktop\\diffrentiation",
"env": {
"PYTHONPATH": "c:\\Users\\shawn\\OneDrive\\Desktop\\diffrentiation\\src"
}
}
}
}
macOS
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"differentiation-server": {
"command": "python",
"args": ["-m", "differentiation_server"],
"cwd": "/path/to/your/diffrentiation",
"env": {
"PYTHONPATH": "/path/to/your/diffrentiation/src"
}
}
}
}
Usage Examples
Symbolic Differentiation
Tool: differentiate_symbolic
Arguments:
- expression: "x**3 + 2*x**2 + x + 1"
- variable: "x"
- order: 1
Numerical Differentiation
Tool: differentiate_numerical
Arguments:
- function_def: "lambda x: anp.sin(x) + x**2"
- point: 1.5707963267948966
- order: 1
Partial Derivatives
Tool: partial_derivatives
Arguments:
- expression: "x**2 + y**2 + x*y"
- variables: ["x", "y"]
Chain Rule
Tool: chain_rule
Arguments:
- outer_function: "sin(u)"
- inner_function: "x**2 + 1"
- variable: "x"
Development
Running the Server
cd diffrentiation
.\.venv\Scripts\activate.bat # Windows
source .venv/bin/activate # macOS/Linux
python -m differentiation_server
Debugging
Use the MCP Inspector for debugging:
npx @modelcontextprotocol/inspector python -m differentiation_server
Building
uv sync
uv build
Educational Value
This MCP server is designed to be educational, providing:
- Step-by-step solutions for complex differentiation problems
- Clear explanations of mathematical concepts
- LaTeX formatting for proper mathematical notation
- Error handling with helpful messages
- Support for various difficulty levels from basic to advanced calculus
Contributing
The server is built using the Model Context Protocol and follows MCP best practices. Contributions are welcome for:
- Additional differentiation techniques
- Enhanced error handling
- More educational prompts
- Performance optimizations
License
This project is open source and available under standard licensing terms.






