Skip to main content
Glama
harsha-moparthy

broker-rails

Server Quality Checklist

50%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation4/5

    Most tools are clearly distinct (place_order, get_positions, get_account, get_limits). The only potential overlap is market_context and get_quote, both providing quotes; market_context adds headlines, while get_quote is a focused bid/ask, so descriptions disambiguate them.

    Naming Consistency3/5

    Read methods consistently use get_* prefix, but place_order diverges from verb_noun pattern, and market_context/recent_decisions are noun phrases. The mix is readable but not uniform.

    Tool Count5/5

    7 tools cover a focused trading workflow without bloat. Each tool serves a distinct purpose in the domain, making the count well-scoped.

    Completeness4/5

    Core trading operations are covered: quotes, account, positions, order placement, risk limits, and market context/audit decisions. Missing cancel/update order and order status are minor gaps for a simple broker.

  • Average 3.2/5 across 7 of 7 tools scored. Lowest: 1.9/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 1 commit in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.

    If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.

    MCP servers without a LICENSE cannot be installed.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior1/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. "Open positions" reveals nothing about read-only status, side effects, or what the tool actually returns, making it completely inadequate.

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

    Conciseness2/5

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

    The two-word description is under-specified rather than concisely structured. It lacks any informative content and does not earn its place as a meaningful description.

    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?

    Despite having an output schema, the description does not explain what open positions represent, the domain context, or any necessary preconditions. The description is too minimal for a clear understanding of the tool's role.

    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?

    The tool has zero parameters, so the schema is vacuously complete with 100% coverage. Baseline for zero parameters is 4, and no parameter description is needed beyond the schema.

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

    Purpose2/5

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

    "Open positions" is a noun phrase that merely restates the tool name without an explicit verb or resource. It fails to clarify that the tool retrieves or lists open positions and does not distinguish it from sibling tools like get_quote or get_account.

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

    Usage Guidelines1/5

    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 any context or exclusions. It solely states a static phrase with no actionable usage direction.

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

  • Behavior2/5

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

    With no annotations, the description must carry the full burden. It does not disclose whether this is read-only, how data is scoped, any prerequisites, or side effects. It merely names content, offering no behavioral context beyond what the name implies.

    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 extremely short and front-loaded, efficiently naming the four key account fields. However, it is a noun phrase rather than a complete sentence, which slightly reduces structural polish.

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

    Completeness3/5

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

    The tool has no parameters and an output schema exists, so return values don't need to be explained. However, the description lacks usage context, does not differentiate it from sibling tools, and provides minimal behavioral information, making it only minimally adequate.

    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?

    The input schema is empty with zero parameters, so there is no parameter semantics to explain. Per the baseline for 0-param tools, the description is not expected to add parameter detail, and it doesn't need to.

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

    Purpose3/5

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

    The description is a fragment ('Cash, equity, exposure and day P&L.') that lacks an explicit verb like 'get' or 'retrieve.' It does convey the resource (account) and the fields returned, which helps distinguish it from position/limit/quote siblings, but the missing sentence structure keeps it from being fully clear.

    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 is provided about when to use this tool versus alternatives such as get_positions or get_limits. The description only lists output fields and gives no context, use cases, or exclusions.

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

  • Behavior2/5

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

    With no annotations, the description carries the burden of disclosing behavioral details. It only states 'current bid/ask' without clarifying whether the quote is real-time, delayed, or if it includes additional fields. No information about rate limits or data freshness is provided.

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

    Conciseness5/5

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

    The description is a single, clear sentence that is properly front-loaded with the key information. Every word adds value, and there is no filler or redundant phrasing.

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

    Completeness3/5

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

    The tool is simple with one parameter and an output schema, so the basic purpose is covered. However, the lack of usage guidelines and behavioral transparency leaves some gaps, especially given the absence of annotations. It is minimally viable but not fully complete.

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

    Parameters2/5

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

    The schema has 0% description coverage, so the description must compensate. It mentions 'one symbol,' which clarifies that the symbol parameter is a single symbol, but it does not explain expected format (e.g., ticker case, exchange suffix) or any constraints beyond the required field.

    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 indicates the tool returns the current bid/ask for a single symbol, which is specific and distinguishes it from broader tools like market_context. It lacks an explicit verb, but the name and context make the purpose obvious.

    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 is given on when to use this tool versus alternatives. Sibling tools like market_context or place_order are not mentioned, and there is no indication of appropriate use cases or exclusions.

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

  • Behavior3/5

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

    With no annotations, the description must carry the transparency burden. It indicates the source as the audit log and states recency, implying a read-only query. However, it does not disclose ordering, scope (e.g., all users or current user), or any side effects. The phrasing is clear but minimal.

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

    Conciseness5/5

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

    The description is a single short sentence, front-loaded with the core purpose. No wasted words or redundant details.

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

    Completeness3/5

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

    The tool is simple (one optional parameter) and has an output schema, which may explain return format. However, the description does not clarify what 'pre-trade decisions' includes or how 'recent' is defined, leaving some ambiguity for an agent deciding whether to invoke it.

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

    Parameters2/5

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

    Schema description coverage is 0%, and the description does not mention the 'limit' parameter at all. The parameter is self-evident from its name and type, but the description adds no value in explaining how many decisions are returned or how the default is applied.

    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 returns the most recent pre-trade decisions from the audit log. It lacks an explicit verb like 'list' or 'get', but the intent is unambiguous and distinguishes it from siblings such as place_order or get_positions.

    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 is provided on when to use this tool versus alternatives. It does not mention that it is read-only or that it is useful for reviewing recent audit history before trading. There are no exclusions or alternative tool references.

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

  • Behavior4/5

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

    With no annotations, the description carries the full burden of disclosing behavior. It explicitly states that the order is subject to pre-trade risk limits and that the handler uses the middleware-approved intent rather than re-parsing arguments. This is valuable insight into how arguments are treated and that the call will not be re-interpreted.

    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 concise: two sentences. The first sentence is a direct summary, and the second explains the middleware/handler relationship. Every sentence serves a purpose, though the second paragraph is slightly more detailed than strictly necessary for a tool description.

    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?

    For a tool with 7 parameters and no schema-level descriptions, the description does not compensate by explaining required inputs or order behavior. The output schema exists but is not shown, so the agent lacks critical information to construct a valid order request. The middleware context is interesting but does not fill the parameter gap.

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

    Parameters1/5

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

    The description provides zero information about any of the 7 parameters. Schema coverage is 0%, so the agent has no help understanding what 'symbol', 'side', 'qty', 'order_type', 'limit_price', 'time_in_force', or 'client_order_id' mean or how they should be formatted.

    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 opens with 'Submit an order,' which clearly identifies the specific action and resource. It is unmistakably distinct from sibling tools like get_quote or get_positions, which are read-only market data or account tools.

    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 explicit guidance is provided on when to use this tool versus alternatives. The mention of pre-trade risk limits and middleware approval describes internal constraints but does not help an agent decide whether to call this tool or another one.

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

  • Behavior4/5

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

    With no annotations provided, the description takes on the full responsibility and clearly discloses that this is a safe read-only operation, explicitly stating there is no setter. This is valuable behavioral context beyond the name and schema.

    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 concise, with two short sentences. The first is a fragment but meaningful; the second adds important context about read-only intent. No unnecessary repetition.

    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?

    The tool is simple with no parameters and has an output schema, so the description need not detail return values. It provides sufficient context about purpose and usage, making it complete for an agent to decide when to invoke it.

    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?

    The tool has zero parameters, so the baseline is 4. The description adds no parameter-specific information, which is acceptable and expected.

    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 states 'The risk limits in force,' which clearly identifies the resource as current risk limits, and the tool name 'get_limits' supplies the verb. It differentiates from siblings like get_positions and get_account by focusing on risk limits, though it lacks an explicit retrieval verb in the description text.

    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 explains the intended use: 'an agent that can see the limits can plan within them instead of discovering them by rejection,' and explicitly notes 'Readable is not writable -- there is no corresponding setter anywhere in the server,' which guides against misuse. It does not, however, name alternative tools for comparison.

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

  • Behavior5/5

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

    Since annotations are absent, the description carries the full burden. It explicitly discloses that headlines are untrusted content, that injection is possible, that the tool is read-only by construction, and that the model cannot reach the order path through this text. This is rich, safety-relevant behavioral context far beyond a generic read-only hint.

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

    Conciseness5/5

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

    The description is two sentences, front-loaded with the core function and followed by high-value security context. Every sentence serves a purpose, with no 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?

    For a simple read-only tool with one parameter and an output schema, the description covers the core functionality and provides critical security context. However, it leaves the parameter semantics and allowed set ambiguous, which slightly detracts from completeness.

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

    Parameters2/5

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

    The single 'symbols' parameter has zero schema description coverage, and the description only adds 'allowed symbols,' leaving unclear which symbols are allowed or the parameter's semantics (e.g., null behavior, format). The schema itself provides basic type info, but the description does not meaningfully compensate for the coverage gap.

    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 clearly states a specific verb-resource combination: 'Quotes plus headline text for the allowed symbols.' This distinguishes it from sibling get_quote (which likely provides only quotes) and other trade tools, making the purpose unambiguous.

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

    Usage Guidelines3/5

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

    The description implies when to use the tool (when both quotes and headline text are needed), but it does not explicitly compare it to siblings like get_quote or state when not to use it. A clear context is present, but no exclusions or alternatives are named.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

broker-rails MCP server

Copy to your README.md:

Score Badge

broker-rails MCP server

Copy to your README.md:

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/harsha-moparthy/broker-rails'

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