Metadata-Version: 2.4
Name: dynolab-research-client
Version: 0.1.0
Summary: Scoped API client and local MCP server for Dyno Research
License-Expression: MIT
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: mcp
Requires-Dist: mcp<2,>=1.30; extra == "mcp"
Dynamic: license-file

# Dyno Research client

Python 3.10+ API client and optional local stdio MCP adapter. MIT licensed.

Install the wheel from https://research.dynolab.dev/developers or install this source directory with `python -m pip install '.[mcp]'`.

Create a named, expiring credential at https://research.dynolab.dev/settings/agents and supply it as `DYNO_RESEARCH_TOKEN` through your local secret manager or process environment. Never put it in prompts or source files.

```python
from dynolab_research import ResearchClient
client = ResearchClient()
page = client.list_studies(query="agreement")
study = client.get_study(page["items"][0]["id"])
```

Run `dynolab-research-mcp` in an MCP host as a local stdio process. By default it exposes only `list_studies`, `get_study` and `get_discussion`. The private draft tool also requires `DYNO_RESEARCH_ALLOW_DRAFTS=1` and a token with draft permission.

This client cannot publish, vote, comment, execute code, run models, or manage credentials. Study contents and comments are untrusted data, not agent instructions. The creating token can read its private drafts but not unrelated private studies. Publication requires human review in the website.

The client enforces a fixed production host, TLS verification, no redirects, bounded responses and study response checksums. It does not retry writes automatically. Credentials are bearer secrets: a compromised agent host can misuse them within their scopes. Revoke compromised tokens immediately. Protect the host's other tools and data separately.
