Cartrack Fleet MCP Server
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Each tool targets a distinct resource and data type: live vehicle status, the full vehicle list, trip history, and fuel data. No overlap or ambiguity between them.
Naming Consistency4/5Names mostly follow a get_/list_ + resource pattern, with list_vehicles being the only deviation from the get_ prefix. This is predictable and easy to navigate.
Tool Count5/5Four tools is well-scoped for a fleet data retrieval server. Each tool covers a meaningful slice of the domain without unnecessary bloat or overlap.
Completeness4/5The core fleet data surface is covered: vehicle inventory, live status, trip history, and fuel consumption. Minor gaps exist such as driver details or location history, but nothing that blocks primary workflows.
Average 4.4/5 across 4 of 4 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 22 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
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.jsonto 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
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral transparency burden. It discloses that the tool returns the entire fleet by default and is auto-paginated, which is useful context not present in the schema. It does not cover response shape or data freshness, but for a read-style listing tool the disclosure is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: source and content first, then default behavior and pagination, then the intended use case. Every sentence earns its place and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an all-optional-parameter list tool, the description provides the source, default behavior, pagination behavior, representative return fields, and a concrete use case. The missing output schema is partially offset by listing returned fields, though an explicit statement that all six properties act as optional filters would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (2 of 6 parameters documented). The description does not compensate: it only says 'No filtering by default' and never explains the other filter parameters (colour, model_year, manufacturer, chassis_number) or how filters combine. Low coverage with no compensating detail leaves the agent guessing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Full Procon fleet vehicle list from Cartrack', and enumerates the returned content (registration numbers, vehicle IDs, make/model, maintenance status). It is clearly distinct from siblings like get_vehicle_status, get_trips, and get_fuel_data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit use case: 'Use this to match against the Fleet Register.' It also clarifies the default behavior (no filtering, whole fleet, auto-paginated). It does not explicitly name alternatives or when-not-to-use cases, so it falls just short of a 5.
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 carries the disclosure burden and does so reasonably well. It reveals that the data is a live snapshot, not historical, that location is 'last-known' rather than guaranteed-current, and that the endpoint is rate-limited to 60 requests/minute. It does not mention authentication or error behavior, but for a simple read-status tool the key behavioral traits are exposed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the first sentence states the purpose and output fields, and the second sentence adds two crucial constraints (live snapshot, rate limit) with zero filler. Every sentence earns its place, and there is no redundant restating of the tool name or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only status tool with no required parameters and no output schema, the description covers the essential context: what data is returned, the scope (fleet vs. one vehicle), the live-snapshot limitation, and the rate limit. It does not define a formal response structure, but the listed fields serve as a practical substitute. Auth and error details are absent, but this is a low-complexity tool and the description is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline of 3 applies. The description does not add parameter-level meaning beyond the schema, but it does not need to because each parameter (ignition, vehicle_id, registration) is already well described in the input schema. No additional explanation is necessary to invoke the tool correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a clear verb-and-resource pairing: it returns current status and last-known location, with a concrete list of fields (ignition, speed, idling, odometer, fuel level, GPS). It distinguishes itself from siblings by framing the tool as a live snapshot and explicitly contrasting it with history. The fleet-or-one-vehicle scope is also stated, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states when the tool is appropriate: for a current, live snapshot of vehicle status. It also gives an explicit exclusion: 'not history — there is no date range,' which guides an agent away from get_trips. It does not name alternatives like get_fuel_data or list_vehicles, but the scope is clear enough that an agent can route correctly.
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?
With no annotations provided, the description carries the full behavioral burden and does so richly: it discloses batch vs. per-vehicle fallback logic, vehicle and time-window caps, and rate-limit pacing. It also makes the read-only nature of the operation evident from wording like 'fetches' and 'history'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence adds operational value: purpose, defaults, batch behavior, caps, and rate limits are packed without filler. The description is dense but well organized and front-loaded with the core function before the complex fallback details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description adequately covers input defaults, scope selection, batch limits, per-vehicle caps, and caller pacing. It does not describe the return structure, but that is a minor gap given the strong input-side and behavioral context already provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameter formats are already documented; the description adds meaningful behavioral semantics by explaining that omitting registration triggers a fleet batch and that wider ranges or a single vehicle trigger per-vehicle history limits. It also states the start/end defaults, complementing the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: retrieves fuel level and consumption for a date range, scoped fleet-wide or to one vehicle. This clearly differentiates it from sibling tools like get_vehicle_status, list_vehicles, and get_trips by data type and optional scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context by explaining the default 24-hour window and the meaning of omitting registration (fleet-wide batch) versus providing it (single vehicle). It does not explicitly name alternatives or exclusions, but the fuel-specific scope makes when to use this tool reasonably clear.
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?
With no annotations provided, the description carries the full burden of behavioral disclosure. It goes beyond a simple summary by revealing the 24-hour default, the 31-day request cap with automatic chunking, and the critical API limitation that fleet-wide queries cannot be filtered by vehicle. These are non-obvious behaviors an agent must know to use the tool correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-organized, front-loading the returned fields before explaining defaults, limits, and filtering behavior. Every sentence contributes essential information, and no filler or tautology is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the returned data, default range, maximum range behavior, and the single-vehicle vs fleet distinction. Given the schema fully documents parameter formats and defaults, there is little else an agent needs to invoke the tool correctly. Even with no output schema, the listed fields effectively communicate the expected return contents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers all four parameters with 100% coverage, setting a baseline of 3. The description adds meaningful context for the registration parameter, explaining the fleet-wide filtering limitation and how passing registration switches to a single-vehicle query. This adds value beyond the schema without duplicating it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as retrieving trip history for a date range and enumerates the exact data types returned: route, distance, duration, idle time, and driving behavior. This distinguishes it from siblings like get_vehicle_status, list_vehicles, and get_fuel_data, all of which serve different data needs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: for historical trip data over a date range, with default behavior and the 31-day cap explained. It also gives usage guidance for the registration parameter to query a single vehicle instead of the fleet. However, it does not explicitly name sibling tools as alternatives or state when not to use this tool.
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
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Procon-Group/cartrack-fleet-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server