# Research Methods Library

> Research methods for AI assistants: study design guidance, R and Python code, and citations

- name: io.github.mikenguyen13/research-methods-mcp
- version: 0.1.1
- connection class: R0 (autonomous)
- trust: 97/100
- quality: 94/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.mikenguyen13%2Fresearch-methods-mcp
- tools: https://api.protogrid.dev/v1/servers/io.github.mikenguyen13%2Fresearch-methods-mcp/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "research-methods-mcp": {
      "type": "http",
      "url": "https://research-methods-mcp.vercel.app/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-100% +updated-5d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 94/100 (new)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 6 of 6 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,820 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 4 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 6, about 1,820 tokens to load them all
- tool set hash: 2f72ad4aae8d5224cb328f15bf3a1429
- tools last changed: 2026-10-16T23:27:38.096Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.mikenguyen13/research-methods-mcp.svg)](https://protogrid.dev/servers/io.github.mikenguyen13/research-methods-mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-16 `list_sources` changed (title, description, annotations) **meaning changed**
  - before: List the books and packages in the library with their topics, code languages, licenses, links, and how to cite each one.
  - after: List the works in the library (textbooks, an R package, and research articles) with their topics, code languages, section counts, licenses, links, and how to cite each one. Suited to questions about what the library covers or which work to consult. Takes no parameters and returns one entry per work.
- 2026-10-16 `cite` changed (inputSchema)
- 2026-10-16 `get_code` changed (title, description, inputSchema, annotations)
  - before: Get runnable code from the library for a statistical, econometric, causal inference, or machine learning task, in R, Python, or Julia. Returns code blocks with the section they come from, the packages they use, a link, and a citation.
  - after: Get runnable code from the library for a specific statistical, econometric, causal inference, or machine learning task, in R, Python, or Julia. Suited to requests for code that carries out a named estimator, test, or modeling step; it returns code with brief context, not an explanation of the method. Results can be restricted to one language or one work. Returns code blocks with the section they come from, the packages they use, a link, and a citation.
- 2026-10-16 `choose_method` changed (description)
  - before: Recommend statistical, econometric, causal inference, or machine learning methods for a research question. Describe the question, the data (cross-section, panel, time series, experiment), how the treatment or exposure was assigned, and the outcome. Returns candidate methods with when to use each, key assumptions, R and Python packages, and the library sections that teach them.
  - after: Recommend statistical, econometric, causal inference, or machine learning methods for a research question or data analysis task: which statistical test or model fits the data, how to estimate a causal or treatment effect, how to analyze an A/B test or experiment, how many observations are needed (power and sample size), how to handle panel, time-series, survey, text, or survival data, and how to build predictive or credit-scoring models. Describe the question, the data (cross-section, panel, time series, experiment), how the treatment or exposure was assigned, and the outcome. Returns candidate methods with when each applies, key assumptions, R and Python packages, and the library sections that teach them.
- 2026-10-16 `search` changed (description, inputSchema)
  - before: Search sections of textbooks and an R package on research methods: causal inference (difference-in-differences, synthetic control, regression discontinuity, instrumental variables, matching, double machine learning), econometrics, experimental design, regression, marketing research, credit scoring, machine learning, and AI. Returns matching sections with their ids, a link, a snippet, the code languages they contain, and a citation.
  - after: Search sections of textbooks and an R package on research methods and data analysis: statistics and hypothesis testing, regression and generalized linear models, causal inference (difference-in-differences, synthetic control, regression discontinuity, instrumental variables, matching, double machine learning), econometrics, experimental design, survey methods, marketing research, credit scoring, machine learning, and AI. Returns matching sections with their ids, a link, a snippet, the code languages they contain, and a citation.

Full history: https://api.protogrid.dev/v1/servers/io.github.mikenguyen13%2Fresearch-methods-mcp/changes

## Remotes

- https://research-methods-mcp.vercel.app/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (6)

- `choose_method`: Recommend statistical, econometric, causal inference, or machine learning methods for a research question or data analysis task: which statistical test or model fits the data, how to estimate a causal or treatment effect, how to analyze an A/B test or experiment, how many observations are needed (power and sample size), how to handle panel, time-series, survey, text, or survival data, and how to build predictive or credit-scoring models. Describe the question, the data (cross-section, panel, time series, experiment), how the treatment or exposure was assigned, and the outcome. Returns candidate methods with when each applies, key assumptions, R and Python packages, and the library sections that teach them.
- `cite`: Format references for works in the library in APA, Chicago, MLA, Harvard, BibTeX, or RIS. Pass the ids of the sections you used to get a deduplicated reference list plus the section links, or pass source ids to cite whole works. With no ids, returns a reference for every work in the library.
- `fetch`: Read one section of the library by its section id. Returns the section in Markdown with its code, the section URL, and the citation of the work it comes from. Long sections come in parts; the text names the id of the next part.
- `get_code`: Get runnable code from the library for a specific statistical, econometric, causal inference, or machine learning task, in R, Python, or Julia. Suited to requests for code that carries out a named estimator, test, or modeling step; it returns code with brief context, not an explanation of the method. Results can be restricted to one language or one work. Returns code blocks with the section they come from, the packages they use, a link, and a citation.
- `list_sources`: List the works in the library (textbooks, an R package, and research articles) with their topics, code languages, section counts, licenses, links, and how to cite each one. Suited to questions about what the library covers or which work to consult. Takes no parameters and returns one entry per work.
- `search`: Search sections of textbooks and an R package on research methods and data analysis: statistics and hypothesis testing, regression and generalized linear models, causal inference (difference-in-differences, synthetic control, regression discontinuity, instrumental variables, matching, double machine learning), econometrics, experimental design, survey methods, marketing research, credit scoring, machine learning, and AI. Returns matching sections with their ids, a link, a snippet, the code languages they contain, and a citation.
