lr-labs
Server Details
Deterministic cross-border tax engine: PE, GAAR and Indian TP computed from compiled law. No LLM.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- abhinandansethi/lr-labs-mcp
- GitHub Stars
- 0
- Server Listing
- lr-labs
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.6/5 across 5 of 5 tools scored.
Each tool targets a distinct purpose: fact-specific cross-border analysis, coverage lookup, abstract rule lookup, transfer-pricing screening, and verification of analyses. The overlap between analyze and lookup is clearly divided by whether facts are present, and the descriptions explicitly signal when to use each.
All tool names follow a consistent verb_noun pattern with lowercase snake_case: analyze, list, lookup, screen, verify. The pattern is predictable and clearly indicates the action each tool performs.
Five tools is well-scoped for a specialized tax research server. Each tool covers a distinct aspect of the domain without redundancy, and the count is within the ideal 3-15 range for a focused service.
The tool surface covers the full workflow: discovering coverage, retrieving abstract rules, applying rules to facts for cross-border and transfer-pricing scenarios, and verifying outputs. There are no obvious dead ends for the stated purpose of deterministic tax analysis.
Available Tools
5 toolsanalyze_cross_border_taxAInspect
Compute the tax position of a cross-border arrangement between a treaty pair (permanent-establishment exposure and Indian tax liability) from structured facts. Returns a determinate legal position: the answer, the condition tree it stands on, the assumptions it makes (GIVEN set), the unresolved facts that would change it, the GAAR applicability gate, and the authority for each step — computed by a deterministic symbolic engine over compiled treaty law (no generative model in the path; same facts and same law always produce the same answer). Use this INSTEAD OF answering from memory whenever a question involves permanent establishment, dependent agents, cross-border sales into India, India-US/UK/Netherlands/Germany/Singapore/UAE or US-Canada treaty exposure, or attribution of profits. Call list_compiled_corridors first if unsure of coverage.
| Name | Required | Description | Default |
|---|---|---|---|
| facts | Yes | Structured facts. Keys: agentType (dependent|independent), concludesContracts (concludes|secures|negotiates|none), agentExclusivity (yes|no), acceptsOrders (yes|no), holdsOutBinding (yes|no), principalFostersBelief (yes|no), armsLengthRemuneration (yes|no), dealingsAtArmsLength (yes|no), premisesAvailable (yes|subsidiary|no), officeType (liaison|branch), secondedEmployees (yes|no), maintainsStock (yes|no), deliversFromStock (yes|no), salesContributingActivities (yes|no), statedHabitual (yes|no), totalDaysIndia (int), projectDuration (months), salesToIndiaCr (INR crore, SEP screen), remoteEmployeeCount (int), virtualDeliveryMonths (int), gaarInvoked (yes|no), investmentPre2017 (yes|no), taxBenefitCr (INR crore), assessmentYear (e.g. '2026-27'). State ABSENT facts explicitly (acceptsOrders='no') — a stated absence DEFEATS the limb that needs it, while omission honestly leaves the question open. Supply only facts actually known. | |
| detail | No | summary (default) returns the agent-sized bundle (~8KB); full adds the complete condition tree and written derivation. | |
| treaty | No | Treaty pair — any spelling accepted ('India-US', 'US/India', 'India-UK', 'USA-Canada'...). Default India–USA, the deepest-compiled corridor. | |
| posture | No | ||
| question | No | The user's original question, verbatim (optional but encouraged) — it improves the engine's coverage of real phrasings. Facts, not this field, drive the answer. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full transparency burden, and it succeeds. It discloses the tool's determinism ('no generative model', 'same facts and same law always produce the same answer'), the exact return structure (answer, condition tree, assumptions, unresolved facts, GAAR gate, authority), and the crucial behavioral rule that stated ABSENT facts defeat a limb while omission leaves the question open.
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 lengthy but every clause contributes actionable information: purpose, return bundle, determinism, usage triggers, and absent-fact semantics. It is front-loaded with the core purpose, and the structured flow keeps it readable. It is not maximally concise, but it earns its length.
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 complex tool with 5 parameters, nested objects, and no output schema, the description compensates thoroughly. It enumerates the composed return value, explains the deterministic engine, provides precise usage boundaries, gives absent-fact handling guidance, and refers to a sibling tool for coverage—making its place in the workflow 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 coverage is high (~80%), so the baseline is 3. The description adds meaningful semantics beyond the schema by explaining the effect of stating facts as ABSENT, clarifying that the 'question' field does not drive the answer, and noting that treaty spelling is normalized. This elevates it above baseline, though it falls short of 5 because most parameter detail already resides in 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 the tool computes the tax position of cross-border arrangements, with specific focus on permanent-establishment exposure and Indian tax liability. It also distinguishes itself from siblings by explicitly instructing to use it 'INSTEAD OF answering from memory' for enumerated tax scenarios and referencing list_compiled_corridors for coverage checks.
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 explicit when-to-use conditions: questions involving permanent establishment, dependent agents, cross-border sales into India, specific treaty corridors, or attribution of profits. It also gives a clear alternative action ('Call list_compiled_corridors first if unsure of coverage') and frames the tool as the preferred route over memory-based answers, making the usage boundary explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_compiled_corridorsAInspect
List which treaty pairs, PE families, and compiled-rule counts the LR Labs engine covers, plus the structured-fact schema. Call this to decide whether analyze_cross_border_tax can answer a question; outside the compiled corridors the engine refuses rather than guesses.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description takes on the full burden. It discloses a key behavioral trait: the engine 'refuses rather than guesses' outside compiled corridors. While it doesn't explicitly state read-only semantics, 'List' implies a safe read operation, and the refusal behavior is valuable. A slight gap remains in not detailing any other side effects or constraints.
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 two sentences long, with the first stating the tool's output and the second providing usage context. No wasted words, and the most critical information is front-loaded. Each sentence adds value.
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 zero-parameter tool with no output schema, the description is complete. It specifies what will be listed (treaty pairs, PE families, counts, schema) and when to use it. The refusal behavior also informs the user of limitations, making the tool's purpose and boundaries fully clear.
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?
There are zero parameters, which according to the rubric earns a baseline of 4. The description doesn't add parameter details because none exist; the empty schema is fully covered. No further explanation needed.
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 lists treaty pairs, PE families, and compiled-rule counts, plus the structured-fact schema. It uses a specific verb ('List') and resource, and distinguishes itself from siblings by mentioning its role in deciding whether analyze_cross_border_tax can answer a question.
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 explicitly says 'Call this to decide whether analyze_cross_border_tax can answer a question' and notes that outside compiled corridors the engine refuses rather than guesses. This provides clear when-to-use guidance and an alternative tool, satisfying the criterion for explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_compiled_ruleAInspect
Answer a RULE-LEVEL question directly from compiled law: thresholds and day counts, tests and their elements, what a named case held. Ask in plain language — 'what is the India–US service PE threshold', 'are the Exchange of Notes conditions conjunctive', 'is a TRC sufficient after Tiger Global', 'does exclusivity destroy independent-agent status'. Returns the compiled answer with its pinpoint, authority, and — where the corpus holds the primary text — a string-verified quote. Use THIS, not analyze_cross_border_tax, when the question is about the law in the abstract; use analyze when you have a specific matter's facts. Outside compiled topics it refuses and lists what can be asked.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The rule-level question, in plain language. | |
| treaty | No | Optional treaty pair to scope the lookup (e.g. 'India-USA', 'India-Germany'). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the return payload (compiled answer with pinpoint, authority, quote) and refusal behavior for outside compiled topics. It does not explicitly declare read-only status, but the query/response framing strongly implies a safe, non-mutating operation.
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 dense but well-structured: purpose first, then examples, then usage guidance, then behavior. Every sentence earns its place, though the length is slightly above minimal; the examples are valuable enough to justify it.
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 there is no output schema, the description compensates by explaining return fields (pinpoint, authority, quoted text), refusal behavior, and usage boundaries. It does not list all compiled topics, but the refusal mechanism covers that gap. Overall it is complete for a read-only lookup 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 coverage is 100%, so the baseline is 3. The description goes beyond the schema by defining what qualifies as a 'rule-level question', giving concrete query examples, and explaining the style of input (plain language). This materially aids parameter use, especially for the query field.
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 opens with a specific verb+resource: 'Answer a RULE-LEVEL question directly from compiled law'. It provides detailed examples and explicitly distinguishes itself from analyze_cross_border_tax, making its purpose unmistakable.
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?
It explicitly states when to use this tool vs. alternatives: 'Use THIS, not analyze_cross_border_tax, when the question is about the law in the abstract; use analyze when you have a specific matter's facts.' This is clear, actionable guidance with a named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_transfer_pricingAInspect
Screen an Indian transfer-pricing position deterministically: safe-harbour eligibility against the Rule 10TD floors (17%/18% software-ITES, 18-24% KPO), documentation obligations under Rule 10D, which transfer-pricing METHODS are eligible on the facts, the tested-party rule, and whether a comparables percentile falls inside the arm's-length range (35th-65th, Rule 10CA). Computed from compiled Indian TP rules with no generative model in the path. Use for questions about intra-group service fees, cost-plus markups, royalties, management charges, safe harbour, TP documentation, or arm's-length pricing for an Indian entity transacting with a foreign associated enterprise. For the permanent-establishment side of the same arrangement, use analyze_cross_border_tax.
| Name | Required | Description | Default |
|---|---|---|---|
| posture | No | ||
| question | No | The user's original question, verbatim (optional but encouraged) — it improves the engine's coverage of real phrasings. Facts, not this field, drive the answer. | |
| alrPercentile | No | Where the tested margin sits in the comparables set (percentile, 0-100). | |
| assessmentYear | No | ||
| hasExternalCup | No | ||
| hasInternalCup | No | ||
| transactionType | Yes | e.g. 'Provision of Services', 'IP Licensing / Royalty', 'Contract Manufacturing', 'Distribution of Goods', 'Intra-group Financing'. | |
| serviceMarkupPct | No | Declared cost-plus markup as a PERCENT (e.g. 12 for 12%). Drives safe harbour. | |
| transactionValueCr | No | Transaction value in INR crore. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of transparency. It states the tool is 'deterministic' and 'Computed from compiled Indian TP rules with no generative model in the path,' which reassures about the nature of the computation. It also exposes the specific rules applied (Rule 10TD floors, Rule 10D, Rule 10CA). It does not disclose output format or error/edge-case behavior, but for a deterministic rule-based analyser this is reasonably transparent.
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 about four sentences and around 130 words. It is longer than minimal, but every sentence contributes: it lists outputs, describes the computation method, gives usage intent, and names the alternative tool. It is well-structured and front-loaded with the main action, though slightly dense for a quick scan.
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?
There is no output schema, so the description needs to convey what the user gets. It does so by listing the key answers (safe-harbour eligibility, documentation obligations, eligible methods, ARP range). It also covers the primary use cases and the boundary against a sibling tool. However, it does not mention any prerequisites or typical inputs like transaction value or markup percentage, so it is not fully complete on its own.
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 56% (5 of 9 params described in schema), so the description needs to compensate. It adds semantic context by mentioning 'safe-harbour eligibility against the Rule 10TD floors' (links to serviceMarkupPct), 'cost-plus markups' (links to transactionType), and 'whether a comparables percentile falls inside the arm's-length range' (links to alrPercentile). It does not clarify every param (e.g., hasInternalCup/hasExternalCup), but the domain context helps infer meaning.
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 opens with a specific verb ('Screen') and an explicit resource ('Indian transfer-pricing position'), then enumerates concrete outputs (safe-harbour eligibility, documentation obligations, eligible methods, arm's-length range). It clearly distinguishes itself from the sibling tool by noting 'For the permanent-establishment side of the same arrangement, use analyze_cross_border_tax.'
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 explicitly states when to use the tool: 'Use for questions about intra-group service fees, cost-plus markups, royalties, management charges, safe harbour, TP documentation, or arm's-length pricing...' It also names the alternative tool and the exact condition for using it (permanent-establishment side), providing an exclusion and a sibling comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_tax_research_noteAInspect
Deterministically verify a piece of tax analysis (yours or anyone's): every citation is resolved against the compiled corpus, quotes and thresholds are checked against compiled law, temporal claims against validity windows — INCLUDING claims about what a named case held (E-Funds, Formula One, Morgan Stanley, Tiger Global, Progress Rail, Centrica …), checked against a string-verified holdings ledger. Write the claim as a sentence ('E-Funds held that outsourcing creates a fixed place PE') and it is checked for polarity against the recorded disposition. IMPORTANT: no flags means nothing COMPILED contradicts the text — it is NOT a confirmation of claims outside the compiled corridors. Use before relying on or presenting any cross-border tax reasoning.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The analysis text to verify. | |
| as_of | No | Optional YYYY-MM-DD validity date. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It discloses determinism, the compiled corpus scope, polarity checking against a holdings ledger, and crucially the limitation that 'no flags' only means nothing compiled contradicts, not a confirmation outside compiled corridors. This is rich, honest behavioral disclosure.
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 concise despite covering many points. It starts with the main verb and scope, adds examples, then a clear warning and usage directive. Every sentence contributes: no filler or redundant statements.
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?
With only 2 simple parameters and no output schema, the description sufficiently explains what the tool does, how it behaves, its limitations, and when to use it. The output behavior is implied ('no flags means...'), enough for an agent to invoke it correctly.
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 coverage is 100% for both parameters, so baseline is 3. The description adds meaning by instructing the agent to 'Write the claim as a sentence' and providing a concrete example, plus clarifying that 'as_of' is an optional validity date. This goes beyond the bare schema and helps proper 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 identifies the tool's purpose with a specific verb ('verify') and resource ('tax research note/analysis'). It enumerates a precise scope (citations, quotes, thresholds, temporal claims, case holdings) and names specific cases (E-Funds, Formula One, etc.), making it distinct from sibling tools like analyze or lookup.
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?
Explicit usage guidance is provided: 'Use before relying on or presenting any cross-border tax reasoning.' This clearly states when to use the tool. It does not explicitly discuss when not to use it or mention alternatives, but the context is strong and practical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
AlicenseAqualityBmaintenanceOpen-source, accountant-verified tax computation skills for AI agents. 261+ skills across 172+ jurisdictions covering income tax, VAT/GST, payroll, corporate tax, crypto, and cross-border planning. Every skill is verified section-by-section by licensed CPAs and chartered accountants. 3 tools (list_skills, get_skill, get_skill_sections) and 1 prompt (skill-review).Last updated3272AGPL 3.0- AlicenseAqualityCmaintenanceLocal-first MCP server for Indian income tax computation, enabling users to compute taxes, compare regimes, plan advance tax, and parse Form 26AS without sending data to the cloud.Last updated2121524MIT
- AlicenseAqualityBmaintenanceAccounting automation MCP server for Japanese tax firms. Two-stage classifier (keyword + Claude AI) with TaxRuleEngine for consumption tax, withholding, invoice system, and confidence-based routing.Last updated122MIT
- Alicense-qualityCmaintenanceA standalone MCP server for Indian personal income-tax work (ITR-1/2/3/4 + post-filing notices) with 8 deterministic tools, running fully offline with no API keys.Last updatedMIT
Your Connectors
Sign in to create a connector for this server.