🔌

Wolfram Alpha MCP

Computation400

Computational knowledge engine for math, science, and data analysis.

Claude DesktopCursorAll MCP-compatible clients

Overview

Computational knowledge engine for math, science, and data analysis.

Setup

Run with npx:

npx -y @modelcontextprotocol/server-wolfram-alpha

Configuration

WOLFRAM_ALPHA_APP_ID environment variable

Documentation

Wolfram Alpha MCP

Overview

Wolfram Alpha MCP is a Model Context Protocol server that provides access to Wolfram Alpha's computational knowledge engine. It enables AI agents to perform complex calculations, data analysis, natural language queries, and access curated computational data across science, mathematics, engineering, and more.

Wolfram Alpha is unique in its ability to compute answers from structured data and algorithms rather than simply retrieving web pages. This makes it invaluable for AI agents that need to perform mathematical computations, analyze data, or access authoritative factual information.

Features

  • Computational Queries: Solve math problems, equations, and calculus
  • Data Access: Access curated data on chemistry, physics, geography, and more
  • Natural Language Processing: Understand and compute from natural language
  • Visualization: Generate plots, charts, and diagrams
  • Unit Conversion: Convert between units and handle dimensional analysis
  • Statistical Analysis: Compute statistics, distributions, and hypothesis tests
  • Financial Data: Access stock prices, economic indicators, and financial metrics
  • Knowledge Domains: 100+ domains including math, science, geography, health

Installation

npx -y @modelcontextprotocol/server-wolfram-alpha

Or install globally:

npm install -g @modelcontextprotocol/server-wolfram-alpha

Configuration

Add to your Claude Desktop config:

{
  "mcpServers": {
    "wolfram-alpha": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-wolfram-alpha"],
      "env": {
        "WOLFRAM_ALPHA_APP_ID": "your-app-id"
      }
    }
  }
}

Get a free App ID from Wolfram Alpha Developer Portal.

Available Tools

ToolDescription
computeExecute a Wolfram Alpha query and get results
solveSolve mathematical equations and expressions
plotGenerate plots and visualizations
dataRetrieve structured data (elements, countries, etc.)
convertConvert units and perform dimensional analysis
statsCompute statistical measures and distributions
financeAccess financial data and calculations

Usage Examples

Mathematical Computation

from mcp import ClientSession, StdioClientTransport
import asyncio

async def compute():
    transport = StdioClientTransport(
        command="npx",
        args=["-y", "@modelcontextprotocol/server-wolfram-alpha"]
    )
    
    async with ClientSession(transport) as session:
        await session.initialize()
        
        # Solve an equation
        result = await session.call_tool(
            "solve",
            arguments={"equation": "x^2 + 5x + 6 = 0"}
        )
        print(f"Solution: {result.solutions}")
        
        # Compute an expression
        result = await session.call_tool(
            "compute",
            arguments={"query": "integral of x^2 sin(x) dx"}
        )
        print(f"Result: {result.result}")

Data Retrieval

async def get_data():
    # Get information about an element
    result = await session.call_tool(
        "data",
        arguments={"entity": "Element:Gold"}
    )
    print(f"Atomic number: {result.atomic_number}")
    print(f"Melting point: {result.melting_point}")
    
    # Get country data
    result = await session.call_tool(
        "data",
        arguments={"entity": "Country:Japan"}
    )
    print(f"Population: {result.population}")
    print(f"GDP: {result.gdp}")

Unit Conversion

async def convert_units():
    result = await session.call_tool(
        "convert",
        arguments={
            "from": "100 miles",
            "to": "kilometers"
        }
    )
    print(f"100 miles = {result.value} {result.unit}")
    
    # Complex conversion
    result = await session.call_tool(
        "convert",
        arguments={
            "from": "60 mph",
            "to": "m/s"
        }
    )

Plotting

async def generate_plot():
    result = await session.call_tool(
        "plot",
        arguments={
            "function": "sin(x) * cos(2x)",
            "range": "x=0..10",
            "format": "png"
        }
    )
    # Returns plot image URL
    print(f"Plot URL: {result.image_url}")

Statistical Analysis

async def statistics():
    result = await session.call_tool(
        "stats",
        arguments={
            "data": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
            "computations": ["mean", "median", "std", "variance"]
        }
    )
    print(f"Mean: {result.mean}")
    print(f"Median: {result.median}")
    print(f"Standard deviation: {result.std}")

Financial Data

async def financial_data():
    result = await session.call_tool(
        "finance",
        arguments={"symbol": "AAPL"}
    )
    print(f"Current price: {result.price}")
    print(f"Market cap: {result.market_cap}")
    print(f"PE ratio: {result.pe_ratio}")

Advanced Features

Natural Language Queries

result = await session.call_tool(
    "compute",
    arguments={"query": "How many calories in an apple?"}
)
print(result.result)

result = await session.call_tool(
    "compute",
    arguments={"query": "distance from Earth to Mars"}
)
print(result.result)

Complex Calculations

# Matrix operations
result = await session.call_tool(
    "compute",
    arguments={"query": "inverse of {{1,2},{3,4}}"}
)

# Differential equations
result = await session.call_tool(
    "solve",
    arguments={"equation": "y'' + y = sin(x)"}
)

# Series expansions
result = await session.call_tool(
    "compute",
    arguments={"query": "Taylor series of exp(x) at x=0"}
)

Multi-step Computations

# Chain computations
def analyze_dataset(data):
    # Statistical summary
    stats = session.call_tool("stats", {"data": data})
    
    # Distribution fit
    fit = session.call_tool("compute", {"query": f"distribution fit {data}"})
    
    # Visualization
    plot = session.call_tool("plot", {"data": data, "type": "histogram"})
    
    return {"stats": stats, "fit": fit, "plot": plot}

Pros

  • ✅ Authoritative computational knowledge
  • ✅ Handles complex mathematical computations
  • ✅ Access to curated structured data
  • ✅ Natural language query understanding
  • ✅ Wide range of domains (100+)
  • ✅ Visualization capabilities
  • ✅ Free tier available

Cons

  • ❌ Requires Wolfram Alpha App ID
  • ❌ Rate limits on free tier
  • ❌ Some queries require paid tier
  • ❌ Limited to Wolfram's knowledge base
  • ❌ Not suitable for real-time data

When to Use

  • Mathematical computations — Solve equations, calculus, linear algebra
  • Data analysis — Statistical analysis and visualization
  • Scientific queries — Physics, chemistry, biology facts
  • Unit conversions — Complex dimensional analysis
  • Financial analysis — Stock data, economic indicators
  • Educational tools — Homework help, concept explanations
  • Engineering calculations — Technical computations

Resources