STEM

Runnable examples

STEM developer cookbook and synthetic checks

Download dependency-free JavaScript and Python MCP examples, run local OAuth and memory fixtures, and evaluate recorded agent traces without claiming live benchmark results.

Documentation reviewed . Host verification dates are listed separately.

Download the STEM agent cookbook ZIP or browse the public source on GitHub. Extract the ZIP and open the stem-agent-cookbook directory. Core examples require Node.js 22 or later or Python 3.9 or later, with no third-party dependencies.

Synthetic checks. The fixture runs on your computer with fictional data. Passing it does not establish production authorization, compatibility with a particular assistant, model accuracy, latency or a ranking advantage.

Run the local checks

From the extracted directory:

node --test test/*.test.mjs

Start the local fixture server:

node fixture-server.mjs

Use the loopback URL printed by the server. In a second terminal, replace PORT below with that printed port:

node smoke.mjs --fixture http://127.0.0.1:PORT/stem
# or
python3 smoke.py --fixture http://127.0.0.1:PORT/stem

The examples save one synthetic selected note, recall it, inspect the graph and remove the exact ID created by that example. Fixture data is separate from your real STEM account. Read the bundled README and source before using a client with a production service.

Move from a fixture to a real connection

The archive includes OAuth discovery, public-client registration and PKCE examples. Real authorization requires the user's own browser sign-in and consent; a fixture token is not a production credential. Follow the bundled instructions and STEM's MCP reference. Never paste a bearer token, authorization code or password into a chat or checked-in file.

Start by discovering the authenticated tools. Save only an explicitly approved harmless note. If a call fails or times out, inspect the result and recall before retrying a write. A local success does not prove that production has accepted a save.

Evaluate recorded behavior honestly

The golden cases cover discovery, permission boundaries, save/recall and error handling. They define expected behavior; they are not completed runs of ChatGPT, Claude or any other model.

node evals/evaluate.mjs /path/to/recorded-results.json

The evaluator scores the traces you supply. Keep model, client, date, prompt, tool outcomes and missing results explicit when you collect your own evidence. Do not publish synthetic fixture results as a live model benchmark. Keep private memory text and credentials out of any public report.

For recorded host checks, see compatibility evidence. For a human-guided test, use the quickstart.