psychometrics-mcp
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Each tool maps to a distinct stage or question: dataset familiarization, classical item/form statistics, DIF screening, pairwise local dependence, and standard-setting aggregation. There is no meaningful overlap even between the two compute_* tools, since one is per-item/per-form and the other is item-pair based.
Naming Consistency5/5All tool names use a consistent verb_noun or verb_adjective_noun snake_case pattern: describe_dataset, compute_classical_stats, flag_dif, compute_local_dependence, run_standard_setting. The naming clearly signals both the action and the target with no mixing of conventions.
Tool Count5/5Five tools is a well-scoped size for a psychometrics analysis server. Each tool covers a substantial area of the workflow without bloat or unnecessary fragmentation.
Completeness4/5The core classical psychometric workflow is well covered: data description, item analysis, DIF, local dependence, and standard setting. The one notable gap is IRT calibration, which the bookmark method explicitly depends on but the server does not provide; this is a real but workable limitation.
Average 4.5/5 across 5 of 5 tools scored.
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 status not available
This repository is licensed under MIT License.
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
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does so thoroughly: it discloses that the tool REFUSES below 20 examinees and warns below 100, it explains that flags are review triggers not verdicts, and it warns that a negative corrected punit-biserial on ordinary difficulty usually means mis-keying and that this warning must be relayed. It also warns against interpreting raw options as scored data.
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 longer than average but every sentence earns its place: a one-line purpose, exact output lists, hard operational thresholds, and a critical interpretation warning. It is front-loaded with the summary before the details and contains no filler.
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?
For a tool with eight parameters, an output schema, and sibling tools, this description is remarkably complete: it states inputs implicitly, outputs explicitly, sample-size constraints, warning behavior, and how to interpret edge cases like negative discrimination. The existence of an output schema covers return structure, and nothing needed for safe invocation is missing.
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 schema already documents all eight parameters in detail. The description adds useful interpretive context (e.g., corrected punit-biserial is the discrimination index to use; Cronbach's alpha equals KR-20 here), but it does not add new parameter-level meaning that the schema already lacks.
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 domain and output class: 'Classical item analysis: difficulty, discrimination and form reliability.' It then enumerates exact per-item and per-form statistics, so an agent knows precisely what the tool computes and can distinguish it from siblings like flag_dif or compute_local_dependence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description strongly implies when to use the tool – when classical item-quality statistics are needed – and even gives interpretive guidance about flags. However, it never names siblings or states explicit exclusion conditions ('use flag_dif for subgroup DIF', 'use describe_dataset first'), so the routing burden falls on the agent's inference.
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 disclosure burden and does so thoroughly. It explains that purification changes results relative to difR, that the tool refuses under n=50 and warns under n=200, and that DIF flags must not be described as bias. It also instructs use of Benjamini-Hochberg adjusted p-values because screening many items is a multiple-testing situation.
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 long but every section earns its place: method rationale, purification behavior, sample-size thresholds, and critical reporting constraints. The bulleted method list and clear warning blocks make the structure easy to scan, and there is no filler.
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?
Given the tool's complexity, the description is remarkably complete: it explains all three methods, their blind spots, matching and purification, operational constraints, and interpretation obligations. An output schema exists, so the description does not need to specify return fields, and the parameter schema covers the remaining operational details.
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 parameter semantics baseline is 3. The main description adds useful method-level context, such as purification and matching on number-correct score, but it does not need to explain individual parameters because the schema already documents them in depth.
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: 'Screen every item for differential item functioning between subgroups.' This clearly identifies the tool's function and its subgroup-comparison scope, which is enough to distinguish it from siblings like compute_classical_stats and compute_local_dependence without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives strong context about when and how the analysis runs, including purification, sample-size refusals, and reporting cautions. However, it never explicitly says when to choose this tool over sibling tools or mentions alternatives, so the usage guidance is implied rather than stated.
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, the description carries the full burden, and it delivers: it discloses that the tool reports counts and missing-data breakdown, reproduces none of the responses themselves, is safe to summarise in conversation, and that diagnostics warnings must be relayed verbatim because they affect every downstream statistic. This goes well beyond what the schema encodes.
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 short paragraphs front-load the purpose, then the usage guidance, then the diagnostics warning. Every sentence carries operational value, and the instruction to relay warnings verbatim earns its place.
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?
Given the 100% schema coverage, an output schema, and a clear description of when and how to use the tool, nothing essential is missing. The description covers the tool's role in the workflow, its safe output characteristics, and the critical warning semantics.
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 is 3 and the description need not restate parameter details. It does add workflow context around layout, scoring, and column names, but it does not add parameter-level semantics beyond the rich schema descriptions.
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 states a specific verb and resource ('Load a response file and describe its shape, blanks and subgroups') and defines a clear diagnostic scope: counts, missing-data breakdown, and subgroup sizes. It also distinguishes itself from the analytical siblings by positioning itself as the first call before running analysis or asking for DIF.
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?
It gives explicit usage timing: 'Call this FIRST on any unfamiliar file', 'confirm ... before running an analysis', and 'check subgroup sizes before asking for DIF'. It does not explicitly name sibling tools as alternatives or state when not to use it, but the before/analysis framing provides clear context.
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 and delivers: refusal conditions ("REFUSES below 5 items or 100 examinees"), a distinct refusal code for an unfixable case ("no_estimable_pairs"), and the return contract including why the reference distribution must accompany the flag list. It also discloses non-behaviors ("there are no p-values here") that prevent misreading the output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action in the first sentence, then organized into distinct paragraphs on rationale, return semantics, refusals, and exclusions. It is long (three dense paragraphs), but every paragraph carries different information and the stylistic asides ("a pair to READ, not a pair to cut") compactly encode interpretation rules. A minor deduction for overall length.
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?
For an 11-parameter, zero-annotation tool with an output schema, the description covers everything structural fields cannot express: refusal thresholds, the purpose of returning the full Q3 distribution, hub-item aggregation, and the non-inferential reading of flags. Nothing an agent needs to select or invoke it correctly is missing.
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 adds only marginal parameter context, connecting the threshold to the flagging rule ("how many SDs from the form mean") and echoing threshold_reference='centred' via "centred Q3*", but the per-parameter schema descriptions are the real carrier of meaning (e.g., "20 means 20 -- pass 0.2, not 20").
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?
Opens with a specific verb, resource, and method: "Screen every item pair for local dependence (Yen's Q3) and flag entangled pairs." It distinguishes itself from siblings by name ("Answers a question compute_classical_stats structurally cannot") and by exclusion ("not an enemy-item check... not inference"). An agent can tell exactly what this tool computes and how it differs from its siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the alternative and the decision condition separating them: compute_classical_stats for per-item checks, this tool for the pairwise question. It gives the triggering scenario ("a fifth of its items are entangled; that is the case for running this at all") and states what not to do with the output ("Do not present a flagged pair as a significant finding"). No inference is left to the agent.
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?
There are no annotations, so the description carries the full behavioral burden, and it is exceptionally transparent. It states the cut score is not the output, warns that differences within about two standard errors are sampling noise, and discloses refusal rules (fewer than 3 panelists, ratings outside [0, 1]) and the warning below 8 panelists. It also discloses that RP criterion is recorded but not applied and that the package does not fit IRT models.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well organized and front-loaded, with the most important operational warning—'THE CUT SCORE IS NOT THE OUTPUT'—placed early. Some points are repeated from the schema descriptions, such as inline acceptability and the rationale for empirical_p_values, but for an 11-parameter tool with conditional requirements the length is largely justified.
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?
For a complex tool with 11 parameters, an output schema, and method-dependent requirements, the description covers the important combinations: rating input options, bookmark prerequisites, the non-substitutability of classical item difficulty, refusal conditions, and the defensibility-record framing. The presence of an output schema means return fields do not need to be enumerated, and the description goes beyond that requirement anyway.
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 the baseline is 3; the description earns an extra point by adding cross-parameter meaning that individual schema descriptions cannot: the relationship between panel_ratings and ratings_file, the conditional requirement of ordered_item_thetas for bookmark, and panel-size rules tied to interpretability of the standard error. It does not need to re-explain every parameter because the schema already does that well.
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 opening sentence gives a specific verb and resource: 'Aggregate standard-setting panel judgements into a cut score with its defensibility record.' The method list (angoff, yes_no_angoff, bookmark) further clarifies the tool's domain and clearly distinguishes it from the sibling psychometrics tools such as compute_classical_stats, flag_dif, and compute_local_dependence.
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 strong contextual guidance: when ratings can be inline versus CSV, when bookmark requires IRT-based ordered_item_thetas, when empirical p-values should be supplied, and when the tool refuses to run. It does not explicitly name sibling tools as alternatives or state a 'do not use this for X' rule, so it stops just short of the strictest 5 standard.
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/JulieElkinsAWS/psychometrics-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server