Fujitsu Social Digital Twin MCP Server
富士通ソーシャルデジタルツインMCPサーバ
このプロジェクトでは、富士通のソーシャルデジタルツインとデジタルリハーサルAPIをモデルコンテキストプロトコル(MCP)と統合し、大規模言語モデル(LLM)が自然言語を通じて富士通のデジタルリハーサルAPIにアクセスできるようにします。
概要
富士通のソーシャルデジタルツインは、実世界のデータに基づき、デジタル空間上の人やモノの状態だけでなく、経済・社会活動全体を再現します。その中核機能である「デジタルリハーサル」は、実世界での施策実施前に、デジタル空間上で人や社会の行動をシミュレーションし、その効果や影響を事前に検証することを可能にします。
このプロジェクトでは、MCP を使用して LLM と Digital Rehearsal API 間のギャップを埋め、ユーザーが自然言語を使用してシミュレーションを実行し、結果を分析できるようにします。
Related MCP server: MLIT Data Platform MCP Server
主な特徴
シミュレーションリストを取得して表示する
シミュレーションを開始する
シミュレーション結果を取得して分析する
シミュレーションデータの管理
交通シミュレーションを分析する
シナリオを比較する
自然言語からシミュレーション構成を生成する
前提条件
Python 3.13以上
富士通APIゲートウェイへのアクセス(APIキー)
MCP 互換 LLM クライアント (例: Claude Desktop)
インストール
Smithery経由でインストール
Smithery経由で Claude Desktop 用の Fujitsu Social Digital Twin Server を自動的にインストールするには:
npx -y @smithery/cli install @3a3/fujitsu-sdt-mcp --client claude1. リポジトリのクローンを作成する
git clone https://github.com/3a3/fujitsu-sdt-mcp.git
cd fujitsu-sdt-mcp2. 環境を設定する
uv の使用(推奨) :
まず、uvをインストールします。
# Install uv using pip
pip install uv
# Or using curl (Linux/macOS)
curl -sSf https://astral.sh/uv/install.sh | sh次に、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あるいは、提供されているセットアップ スクリプトを使用することもできます。
# Make the script executable
chmod +x setup.sh
# Run setup
./setup.sh3. 環境変数を設定する
# 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あるいは、次の設定で.envファイルを作成することもできます。
FUJITSU_API_BASE_URL=https://apigateway.research.global.fujitsu.com/sdtp
FUJITSU_API_KEY=your_api_key_here使用法
MCPサーバーの起動
python -m fujitsu_sdt_mcpサーバーは標準 I/O を使用して MCP クライアントと通信します。
インタラクティブクライアントの使用
MCP サーバーと直接対話するためのシンプルなクライアントも提供されています。
python client.pyクライアントを起動すると、利用可能なリソースとツールのリストが表示され、コマンドラインから呼び出すことができます。
Claude Desktopでのセットアップ
Claude Desktop などの MCP 互換 LLM クライアントでサーバーを使用するには:
クロードデスクトップを開く
設定 > 開発者向け設定 > 設定ファイルの編集に移動します
次の設定を追加します。
"command": "uvx",
"args": [
"fujitsu-sdt-mcp"
],
"env": {
"FUJITSU_API_BASE_URL": "https://apigateway.research.global.fujitsu.com/sdtp",
"FUJITSU_API_KEY": "your_api_key_here"
}Claudeデスクトップを再起動します
リソースとツール
リソース
resource://digital_rehearsal_overview: デジタルリハーサル技術の概要resource://simulation_metrics_explanation: シミュレーションメトリクスの説明resource://scenario_examples: シナリオ例
ツール
list_simulations: シミュレーションのリストを取得するstart_simulation: シミュレーションを開始するget_simulation_result: シミュレーション結果を取得するget_metrics: シミュレーションメトリックを取得するlist_simdata: シミュレーションデータのリストを取得するget_simdata: シミュレーションデータを取得するanalyze_traffic_simulation: 交通シミュレーションを分析するcompare_scenarios: シナリオを比較するcreate_natural_language_simulation_config: 自然言語からシミュレーション設定を生成する
使用例
シミュレーションのリストを取得する
tool list_simulationsシミュレーションの開始
tool start_simulation {"simdataId": "your_simdata_id"}交通シミュレーションの分析
tool analyze_traffic_simulation {"simulationId": "your_simulation_id", "region": "Tokyo", "timeRange": "morning rush hour", "scenario": "traffic optimization"}自然言語からのシミュレーション設定の生成
tool create_natural_language_simulation_config {"description": "I want to run a traffic optimization simulation during morning rush hour in Tokyo"}LLMインタラクションの例
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?貢献
バグ報告や機能リクエストはGitHub Issuesからお願いします。プルリクエストも歓迎します。
ライセンス
このプロジェクトはMITライセンスの下で公開されています。詳細はLICENSEファイルをご覧ください。
謝辞
富士通株式会社 - ソーシャルデジタルツイン技術の開発
モデルコンテキストプロトコル(MCP) - LLMとのシームレスな統合を実現
Available Tools
10 toolsanalyze_traffic_simulationC
Conducts comprehensive analysis on simulation results, providing insights on traffic patterns, bottlenecks, and optimization opportunities for the specified parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| simulation_id | Yes | ||
| region | No | unknown | |
| scenario | No | unknown | |
| time_range | No | unknown | |
| ctx | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It states 'Conducts comprehensive analysis' which implies a read operation, but does not explicitly confirm read-only, destructive potential, authentication needs, or rate limits. The impact on simulation data is unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the action, but it is vague (e.g., 'comprehensive analysis'). It could be more concise while adding useful detail about parameters or output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no annotations, no output schema, and moderate complexity, the description is insufficient. It does not explain what analysis is performed, how results are returned, or how parameters affect the analysis.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the input schema provides only titles and defaults. The description adds no parameter-specific meaning; it only generically refers to 'specified parameters'. Parameters like region, scenario, and time_range remain unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool conducts comprehensive analysis on simulation results, providing insights on traffic patterns, bottlenecks, and optimization opportunities. This verb+resource structure is specific and distinguishes it from sibling tools like get_metrics or get_simulation_result.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives, nor does it specify when not to use it or mention prerequisites. Sibling tools exist (e.g., compare_scenarios, get_metrics), but no differentiation advice is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_scenariosB
Performs detailed comparative analysis between two simulation scenarios, highlighting differences in traffic flow, emissions, travel times, and other key metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| simulation_id1 | Yes | ||
| simulation_id2 | Yes | ||
| scenario1_name | No | Scenario 1 | |
| scenario2_name | No | Scenario 2 | |
| ctx | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden for behavioral disclosure. It implies a read-only analysis operation, which is adequate, but does not disclose whether it has side effects, performance implications, or authorization requirements beyond what can be inferred.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 18 words, front-loading the key action and outcome. Every word contributes to the purpose, with no repetition or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no output schema, and no annotations, the description is too brief. It does not explain the output format, interpretation of differences, constraints on input scenarios (e.g., same simulation or not), or error conditions, leaving significant gaps for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaning to the 5 parameters beyond what the input schema already provides (titles, types, defaults). Since schema description coverage is 0%, the description fails to compensate by explaining parameter roles, format, or relationships.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: performing comparative analysis between two simulation scenarios, and lists specific metrics (traffic flow, emissions, travel times). The verb 'compare' and resource 'simulation scenarios' are specific and distinguish it from siblings like 'analyze_traffic_simulation' which focuses on a single simulation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'analyze_traffic_simulation' or 'get_simulation_result'. There are no prerequisites, exclusion criteria, or context about when comparison is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_natural_language_simulation_configC
Converts a natural language description into a structured simulation configuration, interpreting user requirements into technical parameters for traffic simulation.
| Name | Required | Description | Default |
|---|---|---|---|
| description | Yes | ||
| ctx | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only says 'converts' and 'interprets' without disclosing side effects, persistence, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that front-loads the purpose with no fluff, though it could be slightly more compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Does not describe return value or output format; with no output schema and many sibling tools, more context is needed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, and the tool description adds no detail about what the 'description' string should contain or the role of 'ctx'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it converts natural language to structured simulation config, distinguishing from sibling tools that might use different input formats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like create_simulation_from_usecase, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_simulation_from_usecaseC
指定されたユースケースとアップロードされたファイルからシミュレーションを作成・実行します。
| Name | Required | Description | Default |
|---|---|---|---|
| usecase | Yes | ||
| uploaded_files | Yes | ||
| simulation_params | Yes | ||
| ctx | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the tool 'creates and executes,' implying a mutating action, but fails to disclose any side effects, authorization needs, or performance characteristics. The behavioral impact beyond the obvious is opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that directly states the tool's function. It is concise with no extraneous words. However, the brevity sacrifices necessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, nested objects, no output schema, no annotations), the description is severely insufficient. It does not explain return values, parameter relationships, or how to handle the uploaded_files object, leaving major gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description only generically mentions 'usecase' and 'uploaded_files' without explaining their format, constraints, or relationship. The simulation_params parameter is entirely omitted, and the schema provides no descriptions (0% coverage), leaving the agent guessing about parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates and executes a simulation from a specified use case and uploaded files. It distinguishes itself from siblings like start_simulation by specifying the input source. However, it does not mention the simulation_params parameter, which is a key input, slightly reducing clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like create_natural_language_simulation_config or start_simulation. There are no prerequisites, exclusions, or context hints for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_metricsC
Retrieves comprehensive metrics and analytics data from a completed simulation, including travel statistics, emissions data, and traffic flow information.
| Name | Required | Description | Default |
|---|---|---|---|
| simulation_id | Yes | ||
| ctx | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the tool retrieves data. It does not disclose behavioral traits like whether the operation is read-only, has side effects, requires specific permissions, or any rate limits. For a data retrieval tool, at minimum a read-only hint is expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the core purpose. It could be improved by adding more detail without becoming verbose, but as it stands it is efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and 0% parameter coverage, the description is too minimal. It does not specify the exact metrics returned, any constraints on the simulation state, or how to interpret the output. A more complete description would include expected return format or examples.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no explanation for the two parameters. The required 'simulation_id' parameter is not described at all, and the optional 'ctx' parameter is only defined in the schema's $defs. The description fails to add meaning beyond the schema's basic type information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves comprehensive metrics from completed simulations, listing specific data types (travel statistics, emissions, traffic flow). This distinguishes it from siblings like 'list_simulations' or 'start_simulation', though it does not explicitly contrast with similar data-retrieval tools like 'get_simdata'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'analyze_traffic_simulation' or 'get_simulation_result'. The description gives no hints about prerequisites, whether the simulation must be completed, or what distinguishes this from sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_simdataC
Retrieves the complete configuration and parameter set for a specific simulation dataset, including region settings, time ranges, and scenario parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| simdata_id | Yes | ||
| ctx | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It states 'retrieves' indicating a read operation, but does not disclose side effects, error behavior, authentication needs, or what happens if the simdata_id does not exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and to the point. It avoids verbosity, but could be structured to include more details without being wordy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is simple (single required parameter), the description lacks information about the output format. There is no output schema, so the description should describe what is returned. It mentions contents but not structure. Adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description does not explain the parameters (simdata_id and ctx). It mentions 'region settings, time ranges, scenario parameters' but these are not parameters of the tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the complete configuration and parameter set for a simulation dataset. It lists example contents (region settings, time ranges, scenario parameters). However, it does not explicitly distinguish from sibling tools like list_simdata or get_simulation_result.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. There is no mention of when not to use it, prerequisites, or context. The usage is only implied by the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_simulation_resultB
Retrieves the complete results and output files from a finished traffic simulation, including simulation status and generated result files.
| Name | Required | Description | Default |
|---|---|---|---|
| simulation_id | Yes | ||
| ctx | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states it retrieves results, but does not disclose read-only nature, blocking behavior, or what happens if simulation is not finished. Minimal behavioral context beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 16 words, efficient and front-loaded. No wasted words, but could benefit from slight restructuring to mention prerequisites or return type.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main purpose but omits return format, error conditions, prerequisites (simulation must be finished), and relationships to sibling tools. Adequate but with clear gaps for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, and the description does not explain any parameter meaning. The required 'simulation_id' is not described (e.g., how to obtain it, format), and 'ctx' is not addressed. No value added beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves results and output files from a finished simulation, using specific verb 'retrieves' and resource 'complete results and output files'. It distinguishes from siblings like get_metrics and get_simdata by focusing on finished simulations and including status and files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage only after simulation is finished ('from a finished traffic simulation'), but provides no explicit when-to-use vs alternatives or when-not-to-use. No mention of sibling tools or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_simdataC
Returns a complete list of all simulation datasets available in the system, which can be used as inputs for running new simulations.
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool returns data but does not specify if it is read-only, requires special permissions, or has any side effects. Limited transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the core functionality. It is concise without being overly terse, though it could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool, the description adequately states the return value. However, given the number of sibling tools, more context on what distinguishes this from similar list operations would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter ('ctx') is optional and has no description in the schema (coverage 0%). The tool description does not mention or explain this parameter, leaving the agent without guidance on how to use it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Returns a complete list') and the resource ('simulation datasets'), and the phrase 'available in the system' distinguishes it from sibling tools like list_simulations which list simulations, not datasets. It is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its siblings (e.g., list_simulations, get_simdata). It does not mention any prerequisites or conditions for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_simulationsC
Returns a comprehensive list of all traffic simulations in the system, including their IDs, names, status, and execution timeframes.
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose all behavioral traits. It only describes the return content and lacks details on pagination, ordering, rate limits, or whether it returns active/inactive simulations. This is insufficient for an agent to understand its full behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the main action and return fields. It is concise, but could be slightly more informative without being wordy. No wasted space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and a single parameter (ctx), the description lacks completeness. It does not mention if results are paginated, sorted, or how to handle large lists. The agent would need to infer behavior, which is risky.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter (ctx) with no description at the property level (schema description coverage is 0%). The tool description does not explain the parameter's purpose or usage, though the schema's nested definition provides context. The description adds no value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns a comprehensive list of all traffic simulations with specific fields (IDs, names, status, execution timeframes). This distinguishes it from sibling tools like 'list_simdata' which lists simulation data, not simulations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions it returns 'all' simulations but gives no guidance on when to use this tool vs alternatives. It does not explain when not to use it, prerequisites, or context. Sibling tools exist for more specific queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_simulationB
Launches a new traffic simulation using the provided simulation dataset configuration, returning the simulation ID and initial status.
| Name | Required | Description | Default |
|---|---|---|---|
| simdata_id | Yes | ||
| ctx | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavioral traits. It discloses that the tool returns an ID and status, but does not mention side effects (e.g., asynchronous nature, resource consumption, failure modes), permissions needed, or whether the simulation runs in the background. This is insufficient for an agent to understand the full impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 18 words, front-loading the action and result. It contains no redundant information and is efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool launches a simulation (a potentially long-running and state-changing operation), the description lacks critical details: synchronous vs. asynchronous, error handling, required preconditions (e.g., simdata_id must be valid), and return value structure. The absence of an output schema further burdens the description, making it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must clarify parameters. It implies simdata_id is the 'simulation dataset configuration', adding context beyond the schema's type-only definition. However, the 'ctx' parameter is not explained at all, and its purpose (optional context) is unclear from the description. Partial compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool launches a new traffic simulation, specifying the action (launches), resource (new traffic simulation), and output (simulation ID and initial status). It effectively distinguishes from sibling tools like analyze or compare, as this is the initialization step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when you have a simulation dataset configuration (simdata_id) and want to start a simulation, but it lacks explicit guidance on when to use it versus alternatives, such as create_simulation_from_usecase (which also creates simulations). No warnings or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
v1.0.0- First observed
analyze_traffic_simulation - First observed
compare_scenarios - First observed
create_natural_language_simulation_config - First observed
create_simulation_from_usecase - First observed
get_metrics - First observed
get_simdata - First observed
get_simulation_result - First observed
list_simdata - First observed
list_simulations - First observed
start_simulation
TDQS
Scored across 10 tools
Most tools have clearly distinct purposes, with clear separation between listing resources, launching simulations, retrieving results, and analyzing scenarios. There is some potential overlap between get_simulation_result, get_metrics, and analyze_traffic_simulation, and between start_simulation and create_simulation_from_usecase, but the descriptions are sufficiently different to guide correct use.
Tool names consistently use a verb_noun pattern, with familiar prefixes like list_, get_, create_, start_, analyze_, and compare_. Minor inconsistencies exist, such as the abbreviated simdata instead of simulation_data and the use of both start_ and create_ for launching simulation workflows.
Ten tools is a well-scoped number for a traffic simulation digital twin server. The set covers dataset discovery, simulation configuration, execution, result retrieval, metrics, and analysis without feeling bloated or redundant.
The tool set covers the core simulation lifecycle well: browse datasets, get dataset details, create configs, start simulations, retrieve results, analyze metrics, and compare scenarios. Obvious lifecycle gaps such as stopping, cancelling, or deleting simulations are not covered, but these are not critical for the primary workflows.
Maintenance
Related MCP Connectors
Connect AI agents to SocioLogic's synthetic persona platform for market research.
API discovery and selection for AI agents connecting to the physical world.
11Build, validate, and deploy multi-agent AI solutions from any AI environment.
Deterministic reasoning stack for AI agents: simulate, decide & compute, plus cross-domain tools.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables LLM-based agents to interact with FHIR healthcare data through natural language prompts, providing full CRUD operations on FHIR resources, document processing, and semantic search capabilities.1398MIT
- AlicenseAqualityDmaintenanceEnables natural language search and retrieval of data from Japan's Ministry of Land, Infrastructure, Transport and Tourism (MLIT) Data Platform, including location-based queries, attribute filtering, and data visualization capabilities.18MIT
- FlicenseAqualityDmaintenanceEnables Large Language Models to interact with the ILP Drone Delivery System to plan deliveries, check drone availability, and generate route visualizations. It allows users to manage logistics tasks like capacity planning and temperature requirement matching through natural language.6-
- AlicenseNot gradedqualityFmaintenanceEnables LLMs to search and retrieve Japanese real estate data through unified access to the MLIT Real Estate Information Library API, supporting over 25 geospatial datasets for interactive queries.186MIT