research-toolkitCAUTION
Research methods, workflow tools, and independent review for AI agents, packaged as a Skill, plugin, and local MCP server.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
[](./LICENSE) [](https://github.com/rrrrrredy/research-toolkit/actions/workflows/framework-checks.yml)
English · 简体中文
Existing user and development tasks are independent tasks, and tests actually executed are real tests. Development use, publication and reuse do not change task identity; distinguish tasks by their research questions. Preserve the supplied sources and data, and report execution counts and outcomes from actual run records.
Help AI agents write research reports with concrete judgments, traceable sources, and explicit review choices.
Research methods · Callable workflow tools · Review choices. For industry research, product comparisons, company analysis, and technical research.
Quick start · Use with your agent · Research case · Evaluation results · Lite quickstart · Documentation
Quick start
Start with `lite`. Allow about 5–15 minutes with your agent ready to use. Copy this request; the topic and two fictional sources are supplied:
Use https://github.com/rrrrrredy/research-toolkit and read SKILL.md. Choose profile=lite. Read examples/lite/start.en.json for the brief and examples/lite/sources.md for the source notes. Recommend a helpdesk plan for the six-person team in 350–500 English words. Use only the supplied evidence, register sources and claims, and draft section by section. Skip research_review and Full delivery gates; complete all six Lite checklist items with concrete evidence. Return the short report, separate source/claim records, and checklist. Disclose the fictional evidence and absence of independent review.
You receive a **short report + sources/claims trail
27e4d01246ecOBSERVED · 2026-10-13Exposed tools (7)
4 read · 3 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
research_check_draft | read | Check draft records and declared whole-artifact length before review or finish, without model calls. |
research_check_reviewer | read | Check trusted reviewer configuration locally, without sending report data or paid model calls. |
research_finish | write | Verify report delivery and publish its receipt/terminal state only when checks pass. |
research_guide | read | Read brief/collect/analyze/draft/review/revise/final methods without a task. |
research_review | write | Run the configured content reviews and any declared audits, retaining original evidence. |
research_start | write | Create a research task or complete its missing brief. Returns its directory and stage guidance. |
research_status | read | Read progress and stage methods. Optional stage advances to collect/analyze/draft/revise only |
Trust audit
CAUTIONgrade C · trust 77/100 Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (2 observation(s))
- Network
- declared (10 observation(s))
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (25)
config={'schema_version':1,'profile':'lite','source_access':'fixed_supplied_sources','cohort_status':'prospective_development','publication_rights_confirmed':True,'selection_statement':'Five purposivesettings = {**self.config["author"], "base_url": f"http://127.0.0.1:{server.server_port}/v1"}config = {"reviewers": [{"id": "http", "backend": "generic", "model": "synthetic", "base_url": f"http://127.0.0.1:{server.server_port}/v1"}]}"http://127.0.0.1:8000/v1", "http://[::1]:8000/v1"):
for url in ("http://review.example/v1", "http://10.0.0.1/v1",IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMw0KIiIiUmVhZC1vbmx5IGNoZWNrcyBmb3IgcHVibGljIGp1ZGdlIGNvbnRyb2xzOyBubyBtb2RlbCBjYWxscyBvciBxdWFsaXR5IHZlcmRpY3RzLiIiIg0KaW1wb3J0IGFyZ3BhcnNlDQppbXBvcnQgY29weQ0KaW1wb3J0IGhh
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwoiIiJGcmVzaCwgdG9vbC1kaXNhYmxlZCBDb2RleCBqdWRnZSB0cmFuc3BvcnQuIENMSSBtb2RlbCBpZGVudGl0eSBpcyByZXF1ZXN0ZWQgb25seS4iIiIKaW1wb3J0IGpzb24KaW1wb3J0IG9zCmZyb20gcGF0aGxpYiBpbXBv
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMw0KIiIiUHJlcGFyZSBvciBydW4gYSBzZWVkZWQsIGZpeGVkLXNvdXJjZSwgaW5zdHJ1Y3Rpb24tb25seSBMaXRlIHBhaXJ3aXNlIHBpbG90LiIiIg0KZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhbm5vdGF0aW9ucw0KaW1wb3J0
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwoiIiJGcmVlemUgYW5kIGV4ZWN1dGUgcHVibGljIGNhbGlicmF0aW9uIGNvbnRyb2xzIGluIGZyZXNoIENvZGV4IGp1ZGdlIGNvbnRleHRzLiIiIgppbXBvcnQgYXJncGFyc2UKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRp
IiIiTmV3IGZyb3plbiBMb25nQ2F0IGZvcm1hdCBwcm9iZXM7IG5ldmVyIHNhbHZhZ2Ugb3IgcmVzY29yZSBkZXZlbG9wbWVudCBmYWlsdXJlcy4iIiIKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUsIHRpbWV6b25lCmltcG9ydCBnZXRwYXNzCmltcG9ydCBo
h.require(h.sha(base64.b64decode((root / (name + ".py.b64")).read_bytes().strip(), validate=True)) == plan[name + "_sha256"], "Format code archive mismatch")
raw = base64.b64decode(safe(root, name + ".b64").read_bytes().strip(), validate=True)
raw = base64.b64decode(local(root, "code/" + name + ".b64").read_bytes().strip(), validate=True)
self.assertEqual(base64.b64decode(result["capture"]["raw_output_base64"]["stderr"]), b"warning: \xff")
self.assertEqual(base64.b64decode(capture["raw_output_base64"]["stdout"]), b"broken \xff")
<p id="L58"><strong>S08: <a href="https://docs.github.com/en/apps/creating-github-apps/registering-a-github-app/choosing-permissions-for-a-github-app">GitHub: Choosing permissions for a GitHub App</a>
- **S08: [GitHub: Choosing permissions for a GitHub App](https://docs.github.com/en/apps/creating-github-apps/registering-a-github-app/choosing-permissions-for-a-github-app)** — Read: About GitHub App
<p id="L59"><strong>S08: <a href="https://docs.github.com/en/apps/creating-github-apps/registering-a-github-app/choosing-permissions-for-a-github-app">GitHub: Choosing permissions for a GitHub App</a>
- **S08: [GitHub: Choosing permissions for a GitHub App](https://docs.github.com/en/apps/creating-github-apps/registering-a-github-app/choosing-permissions-for-a-github-app)** — Prior reading: About G
<p>Coze brings native agents, cloud-hosted third-party agents, and local connections into one collaboration interface. Native agents include platform scheduling, email, and cloud resources; third-part
docs/assets/api-browser-walkthrough.en.gif
docs/assets/api-browser-walkthrough.en.mp4
docs/assets/case-walkthrough.gif
docs/assets/case-walkthrough.mp4
docs/assets/case-walkthrough.zh-CN.gif
Gates applied: no_behavioural_pass.
27e4d01246ecfull audit observations/trust-audit/mcp-server/rrrrrredy__research-toolkit.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-13 | 27e4d01246ec | CAUTION | C | 77 | first audit |
Questions
What is the research-toolkit MCP server?
Research methods, workflow tools, and independent review for AI agents, packaged as a Skill, plugin, and local MCP server.
What tools does research-toolkit expose?
7 in total: 4 read-only, 3 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is research-toolkit safe to connect to an agent?
With care. The audit graded it C (77/100) and found 25 things worth knowing before you trust this server, listed below with the exact line each was found on.
What credentials does research-toolkit need?
No credential environment variables were found in its source, so it appears to need none.
How does research-toolkit run?
It speaks stdio, so it runs as a local process your client starts.
How current is this page?
The grade is for one exact copy of the source (27e4d01246ec), read on 2026-10-13. The repository is watched and re-audited when it changes.