About mcp-parigp
mcp-parigp exposes the cypari2 (PARI/GP) number theory library to MCP clients, with functions spanning arithmetic, polynomials, number fields, elliptic curves, and matrices. It is intended for mathematical computation through an MCP client or Python.
Key features
- 01Evaluate PARI/GP expressions
- 02Factor integers and test primality
- 03Work with polynomials and number fields
- 04Compute elliptic-curve properties
- 05Perform matrix and elementary-function operations
Use cases
- 01Factor an integer or test whether it is prime
- 02Find polynomial roots or derivatives
- 03Initialize number fields and manipulate ideals
- 04Compute elliptic-curve invariants
MCP support
The MCP server exposes cypari2 (PARI/GP) operations as tools for MCP clients, including expression evaluation and number-theory functions.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
143Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| expr | string | Yes | A PARI/GP expression as a string (e.g., "x^2 + 1", "factor(100)", "prime(10)"). |
Details
From the project READMEmcp-parigp
MCP server exposing cypari2 (PARI/GP) number theory library
mcp-name: io.github.daedalus/mcp-parigp
Install
pip install mcp-parigp
Usage
As MCP Server
Run directly:
mcp-parigp
Or use with an MCP client by configuring in your settings:
{
"mcpServers": {
"mcp-parigp": {
"command": "mcp-parigp"
}
}
}
In Python
from mcp_parigp import eval_expression, factor, isprime
# Evaluate PARI/GP expressions
result = eval_expression("factor(100)")
print(result) # [[2, 2], [5, 2]]
# Factor integers
print(factor(100)) # [[2, 2], [5, 2]]
# Test primality
print(isprime(29)) # True
API
Number Theory
factor(n)- Factor an integerisprime(n)- Test if n is primegcd(a, b)- Greatest common divisorphi(n)- Euler's totient functionsigma(n, k)- Sum of k-th power of divisorsjacobi(a, n)- Jacobi symbolznorder(x, n)- Multiplicative order modulo nprimes(n)- First n primesnextprime(n)- Next prime after n
Polynomials
polroots(pol)- Find roots of polynomialpolcyclo(n)- n-th cyclotomic polynomialderiv(pol)- Derivative of polynomialsubst(pol, v, expr)- Substitute in polynomial
Number Fields
nfinit(pol)- Initialize number fieldbnfinit(pol)- Initialize with Buchmann's algorithmidealadd(nf, a, b)- Add idealsidealmul(nf, a, b)- Multiply ideals
Elliptic Curves
ellinit(eq)- Initialize elliptic curveellap(E, p)- Trace of Frobenius at pelltors(E)- Torsion subgroupellheight(E, P)- Canonical height
Matrices
matid(n)- n×n identity matrixmatdet(m)- Matrix determinantmatinv(m)- Matrix inversematrank(m)- Matrix rank
Elementary Functions
sin,cos,tan,asin,acos,atansinh,cosh,tanh,asinh,acosh,atanhexp,log,sqrt,abspi(),euler(),I()
Development
git clone https://github.com/daedalus/mcp-parigp.git
cd mcp-parigp
pip install -e ".[test]"
# run tests
pytest
# format
ruff format src/ tests/
# lint
ruff check src/ tests/
# type check
mypy src/
Comments
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.