Wolfram Alpha MCP Server
A Model Context Protocol (MCP) server that provides access to Wolfram Alpha's computational knowledge engine through natural language queries.
Features
- 🧮 Mathematical Calculations: Solve equations, perform complex calculations, and work with mathematical formulas
- 🔬 Scientific Computing: Access physics, chemistry, and scientific data
- 🌍 Geographic Information: Get information about countries, cities, and geographic features
- 📚 Knowledge Base: Query facts about history, art, astronomy, and more
- 📊 Data Analysis: Generate plots, analyze datasets, and perform statistical calculations
- 🔄 Multiple Interpretations: Handle ambiguous queries with assumption-based clarification
Tools
wolfram_query
Query Wolfram Alpha for computational, mathematical, scientific, and factual information.
This has been invaluable to me as LLMs have such a tough time with math computation so Wolfram Alpha comes in so handy.
Parameters:
input(required): The natural language query to send to Wolfram Alphamaxchars(optional): Maximum number of characters in the response (default: 6800)assumption(optional): Assumption to use when Wolfram Alpha provides multiple interpretationsunits(optional): Unit system preference (e.g., "metric", "imperial")currency(optional): Currency preference for financial calculationscountrycode(optional): Country code for localized resultslanguagecode(optional): Language code for resultslocation(optional): Location for location-specific queriestimezone(optional): Timezone for time-related calculations
wolfram_query_with_assumptions
Query Wolfram Alpha with specific assumptions when the initial query returns multiple interpretations.
Parameters:
input(required): The exact same input from the previous queryassumption(required): The assumption value to use from the previous query resultmaxchars(optional): Maximum number of characters in the response (default: 6800)
Setup
Prerequisites
- Node.js: Version 18.0.0 or higher
- Wolfram Alpha App ID: Get one from the Wolfram Alpha Developer Portal
Installing via Smithery
To install wolfram-llm-mcp for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @henryhawke/wolfram-llm-mcp --client claude
Installation
-
Clone this repository:
git clone <repository-url> cd wolfram-alpha-mcp-server -
Install dependencies:
npm install -
Build the project:
npm run build
Configuration
Set your Wolfram Alpha App ID as an environment variable:
export WOLFRAM_ALPHA_APP_ID=your_app_id_here
Or create a .env file:
WOLFRAM_ALPHA_APP_ID=your_app_id_here
Getting a Wolfram Alpha App ID
- Visit the Wolfram Alpha Developer Portal
- Sign up for a Wolfram ID or log in
- Go to the "My Apps" tab
- Click "Sign up to get your first AppID"
- Complete the survey and create your app
- Copy your App ID for use with this MCP server
Usage
Running the Server
npm start
Example Queries
- Mathematics: "solve x^2 + 5x + 6 = 0"
- Physics: "speed of light in vacuum"
- Chemistry: "molecular weight of caffeine"
- Geography: "population of Tokyo"
- Astronomy: "distance to Andromeda galaxy"
- History: "when was the Eiffel Tower built"
- Unit Conversion: "convert 100 fahrenheit to celsius"
- Financial: "apple stock price"
Handling Multiple Interpretations
When Wolfram Alpha provides multiple interpretations of a query, the server will include available assumptions in the response. You can then use the wolfram_query_with_assumptions tool to get more specific results.
Best Practices
-
Query Optimization: Convert complex questions to simplified keyword queries when possible
- Instead of: "how many people live in France"
- Use: "France population"
-
Language: Send queries in English only; translate non-English queries before sending
-
Mathematical Notation: Use proper mathematical notation
- Use
6*10^14instead of6e14 - Use single-letter variable names with optional subscripts
- Use
-
Units: Include spaces between compound units (e.g., "Ω m" for "ohm*meter")
Error Handling
The server provides comprehensive error handling for common issues:
- Invalid App ID: Check your
WOLFRAM_ALPHA_APP_IDenvironment variable - Uninterpretable Input: The query cannot be understood by Wolfram Alpha
- Network Issues: Connection problems with the Wolfram Alpha API
- Timeouts: Query too complex or service temporarily unavailable
Development
Scripts
npm run build: Compile TypeScript to JavaScriptnpm run dev: Watch mode for developmentnpm start: Run the compiled server
Project Structure
src/
├── index.ts # Main server implementation
package.json # Package configuration and MCP metadata
tsconfig.json # TypeScript configuration
README.md # This file
API Reference
This server implements the Model Context Protocol (MCP) specification and uses the Wolfram Alpha LLM API.
License
MIT License
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.