{"name":"io.github.XBP-Europe/sagemath-mcp","slug":"xbp-europe-sagemath-mcp","title":"SageMath","description":"Stateful SageMath MCP server with 40 tools and a sandboxed Sage session per client.","url":"https://mcp.market/server/xbp-europe-sagemath-mcp","rating":null,"grade":"B","score":75,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":42,"stars":15,"forks":1,"downloads_week":386,"last_push_at":"2026-09-19T20:09:17.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/XBP-Europe/sagemath-mcp","website":"https://github.com/XBP-Europe/sagemath-mcp","version":"0.8.2","remotes":[],"packages":[{"registryType":"pypi","identifier":"sagemath-mcp","version":"0.8.2","transport":{"type":"stdio"}}],"tools":[{"name":"boolean_algebra_operation","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"calculate_expression","description":"Evaluate a SageMath expression and return numeric/string forms","write_action":false,"price_micros":0,"input_schema":null},{"name":"cancel_sage_session","description":"Cancel any running Sage computation and restart the worker","write_action":true,"price_micros":0,"input_schema":null},{"name":"coding_theory_operation","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"combinatorics_operation","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"differentiate_expression","description":"Differentiate an expression with respect to a variable","write_action":false,"price_micros":0,"input_schema":null},{"name":"distribution_operation","description":"Probability distribution operations: PDF, CDF, quantile, mean, variance, sampling","write_action":false,"price_micros":0,"input_schema":null},{"name":"elliptic_curve_operation","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"evaluate_sage","description":"Run SageMath code, preserving state within the caller's MCP session.","write_action":true,"price_micros":0,"input_schema":null},{"name":"evaluate_sage_streaming","description":"Execute SageMath code and stream intermediate print() output","write_action":true,"price_micros":0,"input_schema":null},{"name":"expand_expression","description":"Expand a mathematical expression","write_action":false,"price_micros":0,"input_schema":null},{"name":"factor_expression","description":"Factor a mathematical expression or integer","write_action":false,"price_micros":0,"input_schema":null},{"name":"find_root","description":"Find a numeric root of an expression or equation in a given interval","write_action":false,"price_micros":0,"input_schema":null},{"name":"geometry_operation","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"graph_operation","description":"Graph theory: create named graphs and compute properties","write_action":false,"price_micros":0,"input_schema":null},{"name":"group_operation","description":"Group theory: construct groups and query properties","write_action":false,"price_micros":0,"input_schema":null},{"name":"integrate_expression","description":"Integrate an expression (indefinite or definite with bounds)","write_action":false,"price_micros":0,"input_schema":null},{"name":"interrupt_sage_session","description":"Interrupt a running Sage computation while keeping variables defined so far","write_action":false,"price_micros":0,"input_schema":null},{"name":"limit_expression","description":"Compute the limit of an expression","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_sage_sessions","description":"List the named Sage workspaces belonging to this client","write_action":false,"price_micros":0,"input_schema":null},{"name":"lookup_sage_doc","description":"Documentation links for a SageMath name, plus whether this server","write_action":false,"price_micros":0,"input_schema":null},{"name":"matrix_multiply","description":"Multiply two matrices and return the result as nested lists","write_action":false,"price_micros":0,"input_schema":null},{"name":"matrix_operation","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"number_theory_operation","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"plot3d_expression","description":"Plot a 3D surface of a two-variable expression as a rendered image","write_action":false,"price_micros":0,"input_schema":null},{"name":"plot_expression","description":"Plot an expression and return it as a rendered image (PNG or SVG)","write_action":false,"price_micros":0,"input_schema":null},{"name":"plot_multi_expression","description":"Plot multiple expressions overlaid on a single 2D graph, as a rendered image","write_action":false,"price_micros":0,"input_schema":null},{"name":"polynomial_ring_operation","description":"Polynomial ring operations: construct rings","write_action":false,"price_micros":0,"input_schema":null},{"name":"reset_sage_session","description":"Reset the SageMath session state for the current MCP session","write_action":false,"price_micros":0,"input_schema":null},{"name":"series_expansion","description":"Compute a Taylor/Laurent series expansion","write_action":false,"price_micros":0,"input_schema":null},{"name":"simplify_expression","description":"Simplify a mathematical expression","write_action":false,"price_micros":0,"input_schema":null},{"name":"solve_equation","description":"Solve an equation or system of equations","write_action":false,"price_micros":0,"input_schema":null},{"name":"solve_ode","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"start_sage_session","description":"Start a named Sage workspace with its own independent variables","write_action":false,"price_micros":0,"input_schema":null},{"name":"statistics_summary","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"stop_sage_session","description":"Stop a named Sage workspace and release its worker","write_action":false,"price_micros":0,"input_schema":null},{"name":"symbolic_sum","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"vector_calculus_operation","description":"Vector calculus operations: gradient, divergence, curl, laplacian","write_action":false,"price_micros":0,"input_schema":null},{"name":"verify_claim","description":"","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":75,"grade":"B","scanned_at":"2026-09-19T21:04:07.111Z","report":{"scannerVersion":"0.1.8","scannedAt":"2026-09-19T21:04:07.111Z","components":{"code":{"score":15,"max":25,"notes":["32 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"sagemath_mcp-0.8.2/src/sagemath_mcp/_sage_worker.py: …e in its own right: # # latex.eval() runs the toolchain -- and `ev…"},{"id":"exec.shell-true","severity":"medium","component":"code","title":"subprocess with shell=True","evidence":"sagemath_mcp-0.8.2/src/sagemath_mcp/security.py: …ame)` runs `call(\"kpsewhich %s\" % name, shell=True)` # and executed `id > /tmp/...…"}],"inputs":{"packages":[{"registryType":"pypi","identifier":"sagemath-mcp","version":"0.8.2","found":true,"weeklyDownloads":386,"license":"MIT","dependencyCount":15,"publishedAt":"2026-09-17T19:37:53.873745Z","repositoryUrl":"https://github.com/XBP-Europe/sagemath-mcp"}],"repo":{"found":true,"owner":"XBP-Europe","repo":"sagemath-mcp","archived":false,"pushedAt":"2026-09-19T20:09:17Z","stars":15,"forks":1,"openIssues":3,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/236979574?v=4","ownerCreatedAt":"2025-10-09T07:09:58Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/236979574?v=4&s=128","source":"registry","width":128,"height":128},"presence":{"stars":15,"forks":1,"downloadsWeek":386,"license":"MIT","lastPushAt":"2026-09-19T20:09:17.000Z","score":42}}}},"grade_history":[{"kind":"restore","fromGrade":"C","toGrade":"B","reason":"score 75: eval / new Function used; subprocess with shell=True","createdAt":"2026-09-19T21:04:07.644Z"}],"reviews":[]}