Fujitsu Social Digital Twin MCP Server
Servidor MCP Fujitsu Social Digital Twin
Este proyecto integra el gemelo digital social y la API de ensayo digital de Fujitsu con el protocolo de contexto de modelo (MCP) , lo que permite que los modelos de lenguaje grande (LLM) accedan a la API de ensayo digital de Fujitsu a través del lenguaje natural.
Descripción general
El Gemelo Digital Social de Fujitsu recrea no solo el estado de personas y objetos en el espacio digital, basándose en datos del mundo real, sino también actividades económicas y sociales completas. Su función principal, "Ensayo Digital", permite a los usuarios simular el comportamiento humano y social en un espacio digital antes de implementar medidas en el mundo real, lo que permite verificar con antelación sus efectos e impactos.
Este proyecto utiliza MCP para cerrar la brecha entre los LLM y la API de ensayo digital, lo que permite a los usuarios ejecutar simulaciones y analizar resultados utilizando lenguaje natural.
Related MCP server: MLIT Data Platform MCP Server
Características principales
Recuperar y mostrar listas de simulación
Iniciar simulaciones
Recuperar y analizar resultados de simulación
Gestionar datos de simulación
Analizar simulaciones de tráfico
Comparar escenarios
Generar configuraciones de simulación a partir del lenguaje natural
Prerrequisitos
Python 3.13 o superior
Acceso a Fujitsu API Gateway (clave API)
Cliente LLM compatible con MCP (por ejemplo, Claude Desktop)
Instalación
Instalación mediante herrería
Para instalar Fujitsu Social Digital Twin Server para Claude Desktop automáticamente a través de Smithery :
npx -y @smithery/cli install @3a3/fujitsu-sdt-mcp --client claude1. Clonar el repositorio
git clone https://github.com/3a3/fujitsu-sdt-mcp.git
cd fujitsu-sdt-mcp2. Configurar el entorno
Uso de uv (recomendado) :
Primero, instala uv:
# Install uv using pip
pip install uv
# Or using curl (Linux/macOS)
curl -sSf https://astral.sh/uv/install.sh | shLuego, configura tu entorno con 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.txtAlternativamente, puede utilizar el script de configuración proporcionado:
# Make the script executable
chmod +x setup.sh
# Run setup
./setup.sh3. Establecer variables de entorno
# 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_hereAlternativamente, puede crear un archivo .env con la siguiente configuración:
FUJITSU_API_BASE_URL=https://apigateway.research.global.fujitsu.com/sdtp
FUJITSU_API_KEY=your_api_key_hereUso
Iniciando el servidor MCP
python -m fujitsu_sdt_mcpEl servidor se comunica mediante E/S estándar con los clientes MCP.
Uso del cliente interactivo
También se proporciona un cliente simple para la interacción directa con el servidor MCP:
python client.pyAl iniciar el cliente, se mostrará una lista de recursos y herramientas disponibles, y podrá llamarlos desde la línea de comandos.
Configuración con Claude Desktop
Para utilizar el servidor con clientes LLM compatibles con MCP, como Claude Desktop:
Abra Claude Desktop
Vaya a Configuración > Configuración de desarrollador > Editar archivo de configuración
Añade las siguientes configuraciones:
"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"
}Reiniciar Claude Desktop
Recursos y herramientas
Recursos
resource://digital_rehearsal_overview: Descripción general de la tecnología de ensayo digitalresource://simulation_metrics_explanation: Explicación de las métricas de simulaciónresource://scenario_examples: Escenarios de ejemplo
Herramientas
list_simulations: Recuperar una lista de simulacionesstart_simulation: Iniciar una simulaciónget_simulation_result: Recuperar resultados de simulaciónget_metrics: recupera métricas de simulaciónlist_simdata: recupera una lista de datos de simulaciónget_simdata: Recuperar datos de simulaciónanalyze_traffic_simulation: Analizar la simulación de tráficocompare_scenarios: Comparar escenarioscreate_natural_language_simulation_config: Generar configuraciones de simulación a partir del lenguaje natural
Ejemplos de uso
Recuperación de una lista de simulaciones
tool list_simulationsIniciar una simulación
tool start_simulation {"simdataId": "your_simdata_id"}Análisis de la simulación de tráfico
tool analyze_traffic_simulation {"simulationId": "your_simulation_id", "region": "Tokyo", "timeRange": "morning rush hour", "scenario": "traffic optimization"}Generación de configuraciones de simulación a partir del lenguaje natural
tool create_natural_language_simulation_config {"description": "I want to run a traffic optimization simulation during morning rush hour in Tokyo"}Ejemplo de interacción 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?Contribuyendo
Por favor, reporte errores o solicitudes de funcionalidad a través de GitHub Issues. Las solicitudes de incorporación de cambios son bienvenidas.
Licencia
Este proyecto se publica bajo la licencia MIT. Consulte el archivo de licencia para obtener más información.
Expresiones de gratitud
Fujitsu Corporation - Desarrollo de la tecnología de Gemelo Digital Social
Protocolo de contexto de modelo (MCP): permite una integración perfecta con los 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