기호 대수 MCP 서버
Sympy-MCP는 LLM이 기호 수학 및 컴퓨터 대수를 자율적으로 수행할 수 있도록 하는 모델 컨텍스트 프로토콜(Model Context Protocol) 서버입니다. SymPy의 핵심 기능부터 MCP 클라이언트까지 다양한 도구를 제공하여 수학적 표현식과 방정식을 조작할 수 있도록 합니다.
왜?
언어 모델은 기호 조작에 정말 형편없습니다. 변수를 환각 상태로 만들고, 무작위 상수를 만들어내고, 항을 순열시키고, 전반적으로 엉망진창을 만들어냅니다. 하지만 기호 조작을 위해 특별히 설계된 컴퓨터 대수 시스템이 있으므로, 도구 호출을 사용하여 일련의 변환을 조정하고 기호 커널이 모든 복잡한 작업을 처리하도록 할 수 있습니다.
물론 LLM에서 Mathematica나 Python 코드를 생성할 수도 있지만, LLM을 에이전트나 즉석 계산기로 사용하려면 MCP 서버를 사용하고 기호 도구를 직접 노출하는 것이 더 나은 경험입니다.
이 서버는 대수 방정식 풀이, 적분 및 미분, 벡터 미적분, 일반 상대성 이론을 위한 텐서 미적분, 상미분 방정식과 편미분 방정식을 포함한 기호 수학 기능의 하위 집합을 제공합니다.
예를 들어, 자연어로 미분 방정식을 풀도록 요청할 수 있습니다.
강제 항을 사용하여 감쇠 조화 진동자를 풀어보세요. 질량-스프링-감쇠 시스템은 미분 방정식으로 설명되는데, 여기서 m은 질량, c는 감쇠 계수, k는 스프링 상수, F(t)는 외부 힘입니다.
Loading...
또는 일반 상대성 이론과 관련해서:
역 거리 $g^{\mu\nu}$를 사용하여 안티-드 시터 시공간에서 리치 텐서 $R_{\mu\nu}$의 추적을 계산하여 상수 스칼라 곡률 $R$을 결정합니다.
용법
먼저 uv가 필요합니다.
- Homebrew -
brew install uv
- 컬 -
curl -LsSf https://astral.sh/uv/install.sh | sh
그런 다음 다음 명령을 사용하여 서버를 설치하고 실행할 수 있습니다.
지엑스피1
이제 Claude Desktop 앱에서 서버를 사용할 수 있습니다. 다른 클라이언트는 아래를 참조하세요.
단일 명령으로 실행되는 완전히 독립형 버전을 원하시면 다음을 사용하세요. 단, Github에서 가져온 임의의 코드를 실행하므로 주의하세요.
일반 상대성 이론 계산을 하려면 einsteinpy
라이브러리를 설치해야 합니다.
사용 가능한 도구
sympy-mcp 서버는 기호 수학을 위한 다음과 같은 도구를 제공합니다.
도구 | 도구 ID | 설명 |
---|---|---|
변수 소개 | intro | 지정된 가정을 사용하여 변수를 도입하고 저장합니다. |
다중 변수 | intro_many | 지정된 가정을 사용하여 여러 변수를 동시에 도입합니다. |
표현식 파서 | introduce_expression | 사용 가능한 로컬 변수를 사용하여 표현식 문자열을 구문 분석하고 저장합니다. |
LaTeX 프린터 | print_latex_expression | 변수 가정과 함께 LaTeX 형식으로 저장된 표현식을 인쇄합니다. |
대수 솔버 | solve_algebraically | 주어진 도메인에 대해 주어진 변수에 대한 방정식을 대수적으로 풉니다. |
선형 솔버 | solve_linear_system | 선형 방정식 시스템을 풉니다 |
비선형 솔버 | solve_nonlinear_system | 비선형 방정식 시스템을 풉니다 |
함수 변수 | introduce_function | 미분 방정식에 사용할 함수 변수를 소개합니다. |
ODE 솔버 | dsolve_ode | 상미분방정식을 푼다 |
편미분방정식 솔버 | pdsolve_pde | 편미분 방정식을 풉니다 |
표준 미터법 | create_predefined_metric | 사전 정의된 시공간 측정법(예: Schwarzschild, Kerr, Minkowski)을 생성합니다. |
메트릭 검색 | search_predefined_metrics | 사용 가능한 사전 정의된 메트릭 검색 |
텐서 계산기 | calculate_tensor | 메트릭(Ricci, Einstein, Weyl 텐서)에서 텐서를 계산합니다. |
사용자 정의 메트릭 | create_custom_metric | 제공된 구성 요소와 기호에서 사용자 지정 메트릭 텐서를 생성합니다. |
텐서 LaTeX | print_latex_tensor | LaTeX 형식으로 저장된 텐서 표현식을 인쇄합니다. |
단순화기 | simplify_expression | SymPy의 canonicalize 함수를 사용하여 수학 표현식을 단순화합니다. |
치환 | substitute_expression | 다른 표현식에서 변수를 표현식으로 대체합니다. |
완성 | integrate_expression | 변수에 대한 표현식을 통합합니다. |
분화 | differentiate_expression | 변수에 대한 표현식을 차별화합니다. |
좌표 | create_coordinate_system | 벡터 미적분 연산을 위한 3D 좌표계를 생성합니다. |
벡터장 | create_vector_field | 지정된 좌표계에 벡터 필드를 생성합니다. |
컬 | calculate_curl | 벡터장의 컬을 계산합니다 |
분기 | calculate_divergence | 벡터장의 발산을 계산합니다 |
구배 | calculate_gradient | 스칼라 필드의 기울기를 계산합니다 |
단위 변환기 | convert_to_units | 수량을 주어진 대상 단위로 변환합니다. |
단위 단순화기 | quantity_simplify_units | 단위를 사용하여 수량을 단순화합니다. |
매트릭스 크리에이터 | create_matrix | 제공된 데이터에서 SymPy 행렬을 생성합니다. |
결정자 | matrix_determinant | 행렬의 행렬식을 계산합니다 |
역행렬 | matrix_inverse | 행렬의 역행렬을 계산합니다 |
고유값 | matrix_eigenvalues | 행렬의 고유값을 계산합니다 |
고유벡터 | matrix_eigenvectors | 행렬의 고유 벡터를 계산합니다 |
기본적으로 변수는 가정을 통해 미리 정의됩니다(SymPy의 symbols() 함수 작동 방식과 유사). 달리 명시되지 않는 한, 기본 가정은 변수가 복소수체 $\mathbb{C}$에 대한 복소수이고 가환항이라는 것입니다.
재산 | 값 |
---|---|
commutative | 진실 |
complex | 진실 |
finite | 진실 |
infinite | 거짓 |
클로드 데스크탑 설정
일반적으로 mcp install
명령은 서버를 claude_desktop_config.json
파일에 자동으로 추가합니다. 그렇지 않은 경우 구성 파일을 찾아 다음을 추가해야 합니다.
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
mcpServers
개체에 다음을 추가하고 /ABSOLUTE_PATH_TO_SYMPY_MCP/server.py
sympy-mcp server.py
파일의 절대 경로로 바꿉���다.
커서 설정
~/.cursor/mcp.json
에 다음을 추가합니다. 여기서 ABSOLUTE_PATH_TO_SYMPY_MCP
sympy-mcp server.py 파일의 경로입니다.
VS 코드 설정
VS Code와 VS Code Insiders는 이제 에이전트 모드 에서 MCP를 지원합니다. VS Code의 경우 설정에서 Chat > Agent: Enable
활성화해야 할 수 있습니다.
- 원클릭 설정:
또는 settings.json
(전역)에 구성을 수동으로 추가합니다.
- 서버 구성 위의 "시작"을 클릭하고 Python이나 수학 파일을 열고 채팅에서 에이전트 모드로 전환한 다음 "integrate x^2" 또는 "solve x^2 = 1"과 같은 명령을 사용해 시작해 보세요.
클라인 설정
Cline을 사용하려면 먼저 "사용법" 섹션의 명령을 사용하여 MCP 서버를 수동으로 실행해야 합니다. MCP 서버가 실행되면 Cline을 열고 상단의 "MCP 서버"를 선택하세요.
그런 다음 "원격 서버"를 선택하고 다음을 추가합니다.
- 서버 이름:
sympy-mcp
- 서버 URL:
http://127.0.0.1:8081/sse
5ire 설정
백엔드에서 여러 모델(o3, o4-mini, DeepSeek-R1 등)을 지원하는 또 다른 MCP 클라이언트는 5ire입니다.
5ire 를 설정하려면 5ire를 열고 도구 -> 새로 만들기로 가서 다음 구성을 설정하세요.
- 도구 키:
sympy-mcp
- 이름: SymPy MCP
- 명령어:
/opt/homebrew/bin/uv run --with einsteinpy --with mcp[cli] --with pydantic --with sympy mcp run /ABSOLUTE_PATH_TO/server.py
/ABSOLUTE_PATH_TO/server.py
sympy-mcp server.py 파일의 실제 경로로 바꾸세요.
컨테이너에서 실행
Docker를 사용하여 로컬로 서버를 빌드하고 실행할 수 있습니다.
또는 GitHub Container Registry에서 미리 빌드된 이미지를 가져올 수 있습니다.
Docker 컨테이너를 시작하도록 Claude Desktop을 구성하려면 claude_desktop_config.json
파일을 편집하세요.
또는 GitHub에서 미리 빌드된 컨테이너를 사용하려면:
이 구성은 Claude Desktop이 필요할 때 Docker 컨테이너를 시작하도록 합니다. 이 구성으로 Claude Desktop을 사용하기 전에 Docker 이미지( docker build -t sympy-mcp .
)를 빌드해야 합니다.
uv 명령을 docker run 명령으로 변경하면 다른 설치 방법도 Docker에서 작동하도록 조정할 수 있습니다.
예제 상호작용 1: 미분 방정식
다음은 MCP 서버를 사용하여 AI 도우미와 대화할 때 도구 호출이 작동하는 방식의 예입니다.
사용자 : 강제 항을 사용하여 감쇠 조화 진동자를 풀어보세요. 미분 방정식으로 표현되는 질량-스프링-감쇠 시스템입니다. 여기서 m은 질량, c는 감쇠 계수, k는 스프링 상수, F(t)는 외부 힘입니다.
Loading...
Assistant : (내부 도구 호출) 변수를 소개하는 intro_many
:
보조 : (내부 도구 호출) x(t)를 정의하는 introduce_function
:
Assistant : (내부 도구 호출) 미분 방정식을 생성하기 위한 introduce_expression
:
도우미 : (내부 도구 호출) 방정식을 보기 좋게 표시하기 위한 print_latex_expression
:
결과:
Loading...
보조 : (내부 도구 호출) F(t)를 정의하는 introduce_function
:
보조 : (내부 도구 호출) dsolve_ode
사용하여 미분 방정식을 풉니다.
결과:
Loading...
예시 상호작용 2: 일반 상대성 이론
사용자 : 역 거리 $g^{\mu\nu}$를 사용하여 Anti-de Sitter 시공간에서 Ricci 텐서 $R_{\mu\nu}$의 추적을 계산하여 상수 스칼라 곡률 $R$을 결정합니다.
Assistant : (내부 도구 호출) create_predefined_metric
사용하여 Anti-de Sitter 메트릭을 생성합니다.
Assistant : (내부 도구 호출) calculate_tensor
사용하여 Ricci 텐서를 계산합니다.
Assistant : (내부 도구 호출) Ricci 텐서를 표시하기 위한 print_latex_tensor
:
결과:
Loading...
Assistant : (내부 도구 호출) Ricci 스칼라를 계산하기 위한 calculate_tensor
:
Assistant : (내부 도구 호출) Ricci 스칼라를 표시하기 위한 print_latex_tensor
:
결과:
Loading...
보안 면책 조항
이 서버는 사용자 컴퓨터에서 실행되며 언어 모델에 Python 로직을 실행할 수 있는 접근 권한을 부여합니다. 특히 Sympy의 parse_expr
사용하여 수학 표현식을 파싱하는데, 이는 내부적으로 eval
사용하여 임의 코드 실행을 효과적으로 허용합니다. 서버를 실행하면 Claude가 생성하는 코드를 신뢰하게 됩니다. Docker 이미지에서 실행하는 것이 약간 더 안전하지만, 실행하기 전에 코드를 검토하는 것이 좋습니다.
특허
저작권 2025 Stephen Diehl.
이 프로젝트는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
You must be authenticated.
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Tools
SymPy의 수학적 표현과 방정식을 조작하는 기능을 통해 LLM이 자율적으로 기호 수학과 컴퓨터 대수를 수행할 수 있도록 하는 모델 컨텍스트 프로토콜 서버입니다.
- 왜?
- 용법
- 사용 가능한 도구
- 클로드 데스크탑 설정
- 커서 설정
- VS 코드 설정
- 클라인 설정
- 5ire 설정
- 컨테이너에서 실행
- 예제 상호작용 1: 미분 방정식
- 예시 상호작용 2: 일반 상대성 이론
- 보안 면책 조항
- 특허
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol server that provides basic mathematical and statistical functions to LLMs, enabling them to perform accurate numerical calculations through a simple API.Last updated -1313TypeScriptMIT License
- AsecurityAlicenseAqualityA Model Context Protocol server that enables LLMs to perform precise numerical calculations by evaluating mathematical expressions.Last updated -148PythonMIT License
- -securityFlicense-qualityA Model Context Protocol server that connects LLMs to the Compiler Explorer API, enabling them to compile code, explore compiler features, and analyze optimizations across different compilers and languages.Last updated -Python
- AsecurityFlicenseAqualityA Model Context Protocol server that allows LLMs to interact with Python environments, execute code, and manage files within a specified working directory.Last updated -98Python