Skip to main content
Glama
ivossos

FCCS MCP Agentic Server

by ivossos

run_data_rule

Execute data load rules in FCCS to manage financial consolidation data between specified periods with configurable import and export modes.

Instructions

Run a Data Management load rule / Executar regra de carga do Data Management

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
rule_nameYesThe name of the data load rule
start_periodYesStart period (e.g., 'Jan-23')
end_periodYesEnd period (e.g., 'Jan-23')
import_modeNoImport mode (default: REPLACE)
export_modeNoExport mode (default: STORE_DATA)

Implementation Reference

  • The main tool handler function that executes the 'run_data_rule' tool by delegating to the FCCS client.
    async def run_data_rule(
        rule_name: str,
        start_period: str,
        end_period: str,
        import_mode: str = "REPLACE",
        export_mode: str = "STORE_DATA"
    ) -> dict[str, Any]:
        """Run a Data Management load rule / Executar regra de carga do Data Management.
    
        Args:
            rule_name: The name of the data load rule.
            start_period: Start period (e.g., 'Jan-23').
            end_period: End period (e.g., 'Jan-23').
            import_mode: Import mode (default: REPLACE).
            export_mode: Export mode (default: STORE_DATA).
    
        Returns:
            dict: Job submission result.
        """
        result = await _client.run_data_rule(
            _app_name, rule_name, start_period, end_period, import_mode, export_mode
        )
        return {"status": "success", "data": result}
  • The input schema and tool definition for 'run_data_rule' within the TOOL_DEFINITIONS list.
    {
        "name": "run_data_rule",
        "description": "Run a Data Management load rule / Executar regra de carga do Data Management",
        "inputSchema": {
            "type": "object",
            "properties": {
                "rule_name": {
                    "type": "string",
                    "description": "The name of the data load rule",
                },
                "start_period": {
                    "type": "string",
                    "description": "Start period (e.g., 'Jan-23')",
                },
                "end_period": {
                    "type": "string",
                    "description": "End period (e.g., 'Jan-23')",
                },
                "import_mode": {
                    "type": "string",
                    "description": "Import mode (default: REPLACE)",
                },
                "export_mode": {
                    "type": "string",
                    "description": "Export mode (default: STORE_DATA)",
                },
            },
            "required": ["rule_name", "start_period", "end_period"],
        },
    },
  • Registration of the 'run_data_rule' handler in the central TOOL_HANDLERS dictionary.
    "list_jobs": jobs.list_jobs,
    "get_job_status": jobs.get_job_status,
    "run_business_rule": jobs.run_business_rule,
    "run_data_rule": jobs.run_data_rule,
  • Low-level FCCSClient method that submits the data rule job via HTTP POST to the FCCS REST API.
    async def run_data_rule(
        self,
        app_name: str,
        rule_name: str,
        start_period: str,
        end_period: str,
        import_mode: str = "REPLACE",
        export_mode: str = "STORE_DATA"
    ) -> dict[str, Any]:
        """Run data rule / Executar regra de dados."""
        if self.config.fccs_mock_mode:
            return {**MOCK_DATA_RULE_RESULT, "jobName": rule_name}
    
        payload = {
            "jobType": "DATARULE",
            "jobName": rule_name,
            "parameters": {
                "startPeriod": start_period,
                "endPeriod": end_period,
                "importMode": import_mode,
                "exportMode": export_mode
            }
        }
        response = await self._client.post(
            f"/{app_name}/jobs{self._get_query_params()}",
            json=payload
        )
        response.raise_for_status()
        return response.json()
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states the tool runs/executes a rule, implying a write/mutation operation, but doesn't disclose behavioral traits like required permissions, whether it's synchronous/asynchronous, side effects, error handling, or rate limits. This is inadequate for a tool that likely performs data operations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief but includes bilingual repetition ('Executar regra de carga do Data Management'), which adds redundancy without value. It's front-loaded with the primary purpose but could be more efficient by removing the duplicate translation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete. It lacks details on behavioral aspects, return values, error conditions, and how it differs from similar tools. For a tool with 5 parameters and likely data mutation, more context is needed to guide effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are fully documented in the schema. The description adds no additional parameter semantics beyond implying the tool involves 'data load' rules. Baseline 3 is appropriate as the schema handles parameter documentation adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Run a Data Management load rule' specifies the action (run/execute) and resource (data load rule). It distinguishes from siblings like 'run_business_rule' by specifying 'data load' rather than 'business', though the bilingual format adds minor redundancy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 is provided. The description doesn't mention prerequisites, appropriate contexts, or comparison with similar tools like 'run_business_rule' or data-related siblings. Usage is implied but not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ivossos/fccs-mcp-ag-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server