Implements a Model Context Protocol (MCP) server using Wolfram Language, enabling LLMs to access Wolfram Language computation capabilities.
- Features
- Requirements
- Installation
- Quick Start
- Predefined Servers
- Supported Clients
- Available Tools
- Creating Custom Servers
- API Reference
- Development
- License
- Predefined servers for common use cases (general computation, Wolfram|Alpha queries, development)
- Semantic search across Wolfram documentation and Wolfram|Alpha results
- Code evaluation with Wolfram Language directly in AI conversations
- Notebook support for reading and writing Wolfram notebooks
- Custom servers with tailored tools for specific needs
- Wide client support including Claude Desktop, Cursor, VS Code, and more
- MCP prompts for enhanced context and workflows
- MCP Apps for interactive UI resources in supported clients (e.g., embedded notebook viewers, Wolfram|Alpha result displays)
- Wolfram Language 14.2 or higher
- An MCP-compatible client application (see Supported Clients)
- Optional: LLMKit subscription for enhanced semantic search capabilities
PacletInstall["Wolfram/MCPServer"]Needs["Wolfram`MCPServer`"]Install a Wolfram MCP server for Claude Desktop:
InstallMCPServer["ClaudeDesktop"]
(* Out: Success["InstallMCPServer", <|...|>] *)After restarting Claude Desktop, it will have access to Wolfram knowledge and tools:
To install a specific server type:
InstallMCPServer["ClaudeDesktop", "WolframLanguage"]To uninstall:
UninstallMCPServer["ClaudeDesktop"] (* Remove all servers *)
UninstallMCPServer["ClaudeDesktop", "Wolfram"] (* Remove specific server *)MCPServer includes four predefined server configurations, each optimized for different use cases:
| Server | Best For | Tools |
|---|---|---|
| Wolfram (default) | General-purpose use combining computational power with natural language | WolframContext, WolframLanguageEvaluator, WolframAlpha |
| WolframAlpha | Natural language queries without code execution | WolframAlphaContext*, WolframAlpha |
| WolframLanguage | Wolfram Language development and learning | WolframLanguageContext, WolframLanguageEvaluator, ReadNotebook, WriteNotebook, SymbolDefinition, CodeInspector, TestReport |
| WolframPacletDevelopment | Developing and maintaining Wolfram paclets | All WolframLanguage tools plus documentation tools (CreateSymbolDoc, EditSymbolDoc, EditSymbolDocExamples) |
*Requires LLMKit subscription
Install a specific server:
InstallMCPServer["ClaudeDesktop", "WolframLanguage"]See docs/servers.md for detailed information about each server and guidance on choosing the right one.
MCPServer can be installed into the following MCP client applications:
| Client | Name | Project Support |
|---|---|---|
| Claude Code | "ClaudeCode" |
Yes |
| Claude Desktop | "ClaudeDesktop" |
No |
| Cline | "Cline" |
No |
| Copilot CLI | "CopilotCLI" |
No |
| Cursor | "Cursor" |
No |
| Gemini CLI | "GeminiCLI" |
No |
| Google Antigravity | "Antigravity" |
No |
| OpenAI Codex | "Codex" |
No |
| OpenCode | "OpenCode" |
Yes |
| Visual Studio Code | "VisualStudioCode" |
Yes |
| Windsurf | "Windsurf" |
No |
| Zed | "Zed" |
Yes |
Clients with project support can have servers installed for specific projects:
InstallMCPServer[{"ClaudeCode", "/path/to/project"}, "WolframLanguage"]Claude Desktop offers an excellent integration experience with MCPServer, providing seamless access to Wolfram Language's computational capabilities.
Install an MCP server for use in Cursor:
InstallMCPServer["Cursor"]
(* Out: Success["InstallMCPServer", <|...|>] *)Check the MCP tab in Cursor settings to verify the server connection:
Your Wolfram tools will now be available in Cursor agent chat:
MCPServer works with any stdio-based MCP client. See docs/mcp-clients.md for manual configuration instructions.
MCPServer provides a variety of tools organized by category:
Search Wolfram resources using semantic similarity:
- WolframContext - Combines the functionality of
WolframLanguageContextandWolframAlphaContextin a single tool - WolframAlphaContext - Semantic search of Wolfram|Alpha results (requires LLMKit)
- WolframLanguageContext - Semantic search of Wolfram Language documentation and other resources
Note: Since
WolframContextcombines the other two, a server should only include one of these three tools. Without LLMKit,WolframContextis effectively the same asWolframLanguageContextsince the Wolfram|Alpha semantic search functionality is disabled.
Documentation search includes the Function Repository, Data Repository, Neural Net Repository, Paclet Repository, and more.
While only WolframAlphaContext requires an LLMKit subscription, having LLMKit greatly improves search results for all context tools by enabling reranking and filtering.
- WolframLanguageEvaluator - Execute Wolfram Language code with time constraints
- WolframAlpha - Natural language queries to Wolfram|Alpha
- SymbolDefinition - Retrieve symbol definitions in readable markdown format
- ReadNotebook - Read Wolfram notebooks (.nb) as markdown text
- WriteNotebook - Convert markdown to Wolfram notebooks
- TestReport - Run Wolfram Language test files (.wlt) and return reports
- CodeInspector - Inspect Wolfram Language code for issues and return formatted reports
- CreateSymbolDoc - Create new symbol documentation pages
- EditSymbolDoc - Edit existing symbol documentation pages
- EditSymbolDocExamples - Edit example sections of documentation
- NotebookViewer - Embed interactive Wolfram Cloud notebooks inline
- MCPAppsTest - Diagnostic tool for testing the MCP Apps pipeline
Note: MCP Apps tools require a client that supports the
io.modelcontextprotocol/uiextension. When UI support is available, theWolframAlphaandWolframLanguageEvaluatortools are automatically enhanced with interactive notebook viewers. See docs/mcp-apps.md for details.
See docs/tools.md for detailed information about each tool.
Create custom MCP servers with your own tools using LLMConfiguration:
config = LLMConfiguration[<|
"Tools" -> {LLMTool["PrimeFinder", {"n" -> "Integer"}, Prime[#n]&]}
|>];
server = CreateMCPServer["My MCP Server", config]
(* Out: MCPServerObject[...] *)Install for use in Claude Desktop:
InstallMCPServer["ClaudeDesktop", server]
(* Out: Success["InstallMCPServer", <|...|>] *)After restarting Claude Desktop, your custom tools will be available:
You can also mix predefined tools with custom tools:
CreateMCPServer["My MCP Server", <|
"Tools" -> {
"WolframLanguageEvaluator", (* Predefined tool *)
"WolframAlpha", (* Predefined tool *)
LLMTool["MyCustomTool", ...] (* Custom tool *)
}
|>];| Function | Description |
|---|---|
CreateMCPServer[name, config] |
Create a custom MCP server |
InstallMCPServer[client] |
Install the default server for a client |
InstallMCPServer[client, server] |
Install a specific server for a client |
UninstallMCPServer[client] |
Remove all servers from a client |
UninstallMCPServer[client, name] |
Remove a specific server from a client |
| Symbol | Description |
|---|---|
MCPServerObject[...] |
Data structure representing an MCP server |
MCPServerObjectQ[expr] |
Test if an expression is a valid server object |
MCPServerObjects[] |
List all created server objects |
| Symbol | Description |
|---|---|
$DefaultMCPServers |
Association of predefined server configurations |
$DefaultMCPTools |
Association of available tool definitions |
$DefaultMCPPrompts |
Association of available prompt definitions |
| Option | Default | Description |
|---|---|---|
"EnableMCPApps" |
True |
Enable or disable MCP Apps UI resources |
"DevelopmentMode" |
False |
Use local source files instead of installed paclet |
"VerifyLLMKit" |
True |
Check LLMKit subscription requirements |
See the developer documentation for information on:
- Getting started with development
- Writing and running tests
- Building the paclet
- Adding new tools
- Error handling
For AI agents working on this codebase, see AGENTS.md.
This project is licensed under the MIT License - see the LICENSE file for details.
Richard Hennigan (Wolfram Research)



