Skip to content

Implements a model context protocol server using Wolfram Language

License

Notifications You must be signed in to change notification settings

rhennigan/MCPServer

Repository files navigation

GitHub license Wolfram Version

Implements a Model Context Protocol (MCP) server using Wolfram Language, enabling LLMs to access Wolfram Language computation capabilities.

Table of Contents

Features

  • 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)

Requirements

Installation

Install the Paclet

PacletInstall["Wolfram/MCPServer"]

Load the Package

Needs["Wolfram`MCPServer`"]

Quick Start

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:

Claude Desktop Screenshot

To install a specific server type:

InstallMCPServer["ClaudeDesktop", "WolframLanguage"]

To uninstall:

UninstallMCPServer["ClaudeDesktop"]              (* Remove all servers *)
UninstallMCPServer["ClaudeDesktop", "Wolfram"]   (* Remove specific server *)

Predefined Servers

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.

Supported Clients

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

Project-Level Installation

Clients with project support can have servers installed for specific projects:

InstallMCPServer[{"ClaudeCode", "/path/to/project"}, "WolframLanguage"]

Claude Desktop

Claude Desktop offers an excellent integration experience with MCPServer, providing seamless access to Wolfram Language's computational capabilities.

Cursor

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:

Cursor MCP Settings Screenshot

Your Wolfram tools will now be available in Cursor agent chat:

Cursor MCP Chat Screenshot

Other Clients

MCPServer works with any stdio-based MCP client. See docs/mcp-clients.md for manual configuration instructions.

Available Tools

MCPServer provides a variety of tools organized by category:

Context Tools (Semantic Search)

Search Wolfram resources using semantic similarity:

  • WolframContext - Combines the functionality of WolframLanguageContext and WolframAlphaContext in a single tool
  • WolframAlphaContext - Semantic search of Wolfram|Alpha results (requires LLMKit)
  • WolframLanguageContext - Semantic search of Wolfram Language documentation and other resources

Note: Since WolframContext combines the other two, a server should only include one of these three tools. Without LLMKit, WolframContext is effectively the same as WolframLanguageContext since 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.

Code Execution Tools

  • WolframLanguageEvaluator - Execute Wolfram Language code with time constraints
  • WolframAlpha - Natural language queries to Wolfram|Alpha
  • SymbolDefinition - Retrieve symbol definitions in readable markdown format

Notebook Tools

  • ReadNotebook - Read Wolfram notebooks (.nb) as markdown text
  • WriteNotebook - Convert markdown to Wolfram notebooks

Testing Tools

  • TestReport - Run Wolfram Language test files (.wlt) and return reports

Code Analysis Tools

  • CodeInspector - Inspect Wolfram Language code for issues and return formatted reports

Documentation Tools (Paclet Development)

  • CreateSymbolDoc - Create new symbol documentation pages
  • EditSymbolDoc - Edit existing symbol documentation pages
  • EditSymbolDocExamples - Edit example sections of documentation

MCP Apps Tools

  • 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/ui extension. When UI support is available, the WolframAlpha and WolframLanguageEvaluator tools are automatically enhanced with interactive notebook viewers. See docs/mcp-apps.md for details.

See docs/tools.md for detailed information about each tool.

Creating Custom Servers

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:

Claude Desktop Screenshot

You can also mix predefined tools with custom tools:

CreateMCPServer["My MCP Server", <|
    "Tools" -> {
        "WolframLanguageEvaluator",  (* Predefined tool *)
        "WolframAlpha",               (* Predefined tool *)
        LLMTool["MyCustomTool", ...]  (* Custom tool *)
    }
|>];

API Reference

Core Functions

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

Server Objects

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

Predefined Resources

Symbol Description
$DefaultMCPServers Association of predefined server configurations
$DefaultMCPTools Association of available tool definitions
$DefaultMCPPrompts Association of available prompt definitions

Options

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

Development

See the developer documentation for information on:

For AI agents working on this codebase, see AGENTS.md.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Author

Richard Hennigan (Wolfram Research)

About

Implements a model context protocol server using Wolfram Language

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 9