Skip to main content

Fujitsu Social Digital Twin MCP Server

This project integrates Fujitsu's Social Digital Twin and Digital Rehearsal API with the Model Context Protocol (MCP), allowing Large Language Models (LLMs) to access Fujitsu's Digital Rehearsal API through natural language.

Overview

Fujitsu's Social Digital Twin recreates not only the state of people and objects in the digital space based on real-world data, but also entire economic and social activities. Its core function, "Digital Rehearsal," enables users to simulate human and social behavior in a digital space before implementing measures in the real world, allowing for advance verification of their effects and impacts.

This project uses MCP to bridge the gap between LLMs and the Digital Rehearsal API, enabling users to run simulations and analyze results using natural language.

Key Features

  • Retrieve and display simulation lists
  • Start simulations
  • Retrieve and analyze simulation results
  • Manage simulation data
  • Analyze traffic simulations
  • Compare scenarios
  • Generate simulation configurations from natural language

Prerequisites

  • Python 3.13 or higher
  • Access to Fujitsu API Gateway (API Key)
  • MCP-compatible LLM client (e.g., Claude Desktop)

Installation

1. Clone the Repository

git clone https://github.com/3a3/fujitsu-sdt-mcp.git
cd fujitsu-sdt-mcp

2. Set Up Environment

Using uv (recommended):

First, install uv:

# Install uv using pip
pip install uv

# Or using curl (Linux/macOS)
curl -sSf https://astral.sh/uv/install.sh | sh

Then, set up your environment with uv:

# Create virtual environment
uv venv

# Activate virtual environment
# Windows:
.venv\Scripts\activate
# Unix/MacOS:
source .venv/bin/activate

# Install dependencies
uv pip install -r requirements.txt

Alternatively, you can use the provided setup script:

# Make the script executable
chmod +x setup.sh

# Run setup
./setup.sh

3. Set Environment Variables

# Windows:
set FUJITSU_API_BASE_URL=https://apigateway.research.global.fujitsu.com/sdtp
set FUJITSU_API_KEY=your_api_key_here

# Unix/MacOS:
export FUJITSU_API_BASE_URL=https://apigateway.research.global.fujitsu.com/sdtp
export FUJITSU_API_KEY=your_api_key_here

Alternatively, you can create a .env file with the following settings:

FUJITSU_API_BASE_URL=https://apigateway.research.global.fujitsu.com/sdtp
FUJITSU_API_KEY=your_api_key_here

Usage

Starting the MCP Server

python -m fujitsu_sdt_mcp

The server communicates using standard I/O with MCP clients.

Using the Interactive Client

A simple client is also provided for direct interaction with the MCP server:

python client.py

When you start the client, a list of available resources and tools will be displayed, and you can call them from the command line.

Setup with Claude Desktop

To use the server with MCP-compatible LLM clients such as Claude Desktop:

  1. Open Claude Desktop
  2. Go to Settings > Developer Settings > Edit Config File
  3. Add the following settings:
{
  "mcpServers": {
    "fujitsu_digital_rehearsal": {
      "command": "python",
      "args": ["-m", "fujitsu_sdt_mcp"]
    }
  }
}
  1. Restart Claude Desktop

Resources and Tools

Resources

  • resource://digital_rehearsal_overview: Overview of Digital Rehearsal technology
  • resource://simulation_metrics_explanation: Explanation of simulation metrics
  • resource://scenario_examples: Example scenarios

Tools

  • list_simulations: Retrieve a list of simulations
  • start_simulation: Start a simulation
  • get_simulation_result: Retrieve simulation results
  • get_metrics: Retrieve simulation metrics
  • list_simdata: Retrieve a list of simulation data
  • get_simdata: Retrieve simulation data
  • analyze_traffic_simulation: Analyze traffic simulation
  • compare_scenarios: Compare scenarios
  • create_natural_language_simulation_config: Generate simulation settings from natural language

Usage Examples

Retrieving a List of Simulations

tool list_simulations

Starting a Simulation

tool start_simulation {"simdataId": "your_simdata_id"}

Analyzing Traffic Simulation

tool analyze_traffic_simulation {"simulationId": "your_simulation_id", "region": "Tokyo", "timeRange": "morning rush hour", "scenario": "traffic optimization"}

Generating Simulation Settings from Natural Language

tool create_natural_language_simulation_config {"description": "I want to run a traffic optimization simulation during morning rush hour in Tokyo"}

Example LLM Interaction

User: I want to run a traffic simulation during morning rush hour in Tokyo

Claude: I can help you run a traffic simulation for Tokyo's morning rush hour. Here's how we can set it up.

First, let's generate simulation settings from your natural language description:
[Tool execution: create_natural_language_simulation_config]

Generated settings:
{
  "simulationType": "traffic",
  "parameters": {
    "region": "Tokyo",
    "timeRange": "morning_rush"
  },
  "name": "traffic_20250416_123045"
}

Next, let's check available simulation data:
[Tool execution: list_simdata]

From this data, I can start a simulation using Tokyo's morning traffic data.
I've selected the appropriate simulation data ID and will start the simulation:
[Tool execution: start_simulation]

The simulation has started. The simulation ID is "sim_12345".
It will take some time for the results to be available. Once complete, I'll analyze them.

(After simulation completes)
Let's analyze the simulation results:
[Tool execution: analyze_traffic_simulation]

Analysis results:
- CO2 emissions: 1,250kg
- Average travel time: 42 minutes
- Total traffic volume: 15,700 vehicles

From these results, I can see that the Shibuya-Shinjuku route experiences particularly severe congestion.
Here are some potential improvements:
1. Optimize traffic signal control
2. Implement one-way traffic on certain roads during specific times
3. Increase public transportation frequency

Would you like to see a more detailed analysis?

Contributing

Please report bugs or feature requests via GitHub Issues. Pull requests are welcome.

License

This project is released under the MIT License. See the LICENSE file for details.

Acknowledgments

  • Fujitsu Corporation - Development of Social Digital Twin technology
  • Model Context Protocol (MCP) - Enabling seamless integration with LLMs

Metadata

Release files for fujitsu-sdt-mcp 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fujitsu-sdt-mcp 0.1.1
File Size Uploaded Provenance
fujitsu_sdt_mcp-0.1.1.tar.gz 17.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for fujitsu-sdt-mcp 0.1.1
File Interpreter ABI Platform
fujitsu_sdt_mcp-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 31.4 kB

Release files / fujitsu_sdt_mcp-0.1.1.tar.gz

Download URL fujitsu_sdt_mcp-0.1.1.tar.gz
Size 17.9 kB
Tags Source
SHA-256 checksum
How to use checksums
e7a7194a0c8ad330e160c2e2dbf5134620db1d7c4c203ee4a9dbdee5aad8ba99
BLAKE2b-256 checksum
How to use checksums
80973afd4bd461de1f800a27eacb6586a503bb5823dfa75611affef9b2da6872
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release files / fujitsu_sdt_mcp-0.1.1-py3-none-any.whl

Download URL fujitsu_sdt_mcp-0.1.1-py3-none-any.whl
Size 13.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
689c99525c4fda9bbb08eab2aad9fa0be858a917f4251eaeb7a81e71c132f9ac
BLAKE2b-256 checksum
How to use checksums
e032975fd2bbdaefc48406c022f396295fbe61af847e5c011c2e94bebcbae8b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Security for fujitsu-sdt-mcp 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page