Skip to main content
Glama
ohneben

ohneben's Wafeq MCP

wafeq_reports_profit_and_loss_list

Read-onlyIdempotent

Generate a profit and loss report for a date range, currency, and grouping (month/year), with optional filters by branch, contact, project, or cost center to analyze financial performance.

Instructions

๐ŸŸข READ-ONLY ยท Reports ยท GET /reports/profit-and-loss/

Profit and Loss

Generate profit and loss report in currency from date_after to date_before range and group it by group_by parameter.

PARAMETERS: date_after and date_before are both REQUIRED and are the range bounds. There is no date_from/date_to. The range must cover whole periods: with group_by=month (the default) it must run from the first day of a month to the last day of a month; with group_by=year it must run 1 January to 31 December. A partial year with group_by=year is rejected โ€” use group_by=month for a year-to-date figure. This server checks the range before sending and tells you the nearest valid one.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
currencyNoThe currency of the report. Default: base currency of the organization.
group_byNoGroup the report by this value.month
branch__inNoThe unique identifier of the branch. Multiple values may be provided. The special value '__null__' may be provided to filter for null values.
date_afterYesThe period start date of the report. Must be the first day of the month/year.
contact__inNoThe unique identifier of the contact. Multiple values may be provided. The special value '__null__' may be provided to filter for null values.
date_beforeYesThe period end date of the report. Must be the last day of the month/year.
project__inNoThe unique identifier of the project. Multiple values may be provided. The special value '__null__' may be provided to filter for null values.
cost_center__inNoThe unique identifier of the cost center. Multiple values may be provided. The special value '__null__' may be provided to filter for null values.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observedv2.0.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds meaningful behavioral context beyond that by stating the server validates the date range before sending and tells the caller the nearest valid range. This helps the agent anticipate error handling without contradicting the annotations.

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

Conciseness4/5

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

The description is efficiently structured with the operation front-loaded, followed by key parameter constraints. The 'Profit and Loss' line is somewhat redundant with the resource name, but the rest of the explanation earns its place and avoids unnecessary fluff.

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

Completeness4/5

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

Given the rich annotations and fully described schema, the description covers the critical non-obvious behavior: date-range validation, period alignment, and the group_by interaction. It does not describe the response format, but for a report generation tool the purpose and constraints are sufficient for correct invocation.

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

Parameters4/5

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

Schema coverage is 100%, providing descriptions for all parameters. The description adds extra meaning by clarifying that date_after/date_before are required range bounds, that date_from/date_to do not exist, and that the range must align with whole periods depending on group_by. This is valuable interaction-level semantics beyond the schema.

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

Purpose5/5

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

The description states a specific verb and resource: 'Generate profit and loss report' and identifies the endpoint 'GET /reports/profit-and-loss/'. This clearly distinguishes it from sibling report tools such as balance sheet, cash flow, and trial balance.

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

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives concrete usage context, including required date range bounds, the absence of date_from/date_to, and the rule that partial periods are rejected with group_by=year. It also advises using group_by=month for year-to-date figures. It does not explicitly name alternative report tools, so it falls just short of full alternative guidance.

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/ohneben/Wafeq-MCP'

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