How it works, in one sentence. You connect your assistant to Outcome Owl once, then ask questions in plain language — Outcome Owl's read-only tools show you useful facts about your key processes that answer questions you’ve always had, but never got a straight answer to.
The connection is always read-only and always acts as you — it sees only what your Outcome Owl account is allowed to see, and every request is recorded to your account. Outcome Owl cannot change your data, and your data is never shared with any other organization. Under the hood, Outcome Owl exposes its data through the Model Context Protocol (MCP) — an open standard for connecting AI assistants to live data sources — but you do not need to know anything about MCP to use it.
Before You Begin
/mcp — for example https://<your-company>-mcp.outcomeowl.com/mcp. Your onboarding contact gives you the exact address.Part 1
| Method | Best for | What you provide |
|---|---|---|
| Sign-in (recommended) | People using Claude, ChatGPT, and most connector apps | Your existing Outcome Owl sign-in — no key to copy |
| Personal key | Developer and agent tools (command-line tools, automation) | A personal key (owlk_…) issued to you, kept secret |
Most business users want the sign-in method. Follow the section for your app below; the personal-key method is covered at the end of Part 1.
Enter the address exactly, including the /mcp at the end:
https://<your-company>-mcp.outcomeowl.com/mcp
If you leave off the /mcp, your app will report that it is "not a valid connector." That is the single most common setup mistake — check the ending first if the connection does not take.
Claude Desktop and claude.ai (in your browser) connect the same way.
/mcp) and confirm./mcp). When prompted for a name, enter Outcome Owl — the name you will use to refer to it when you ask questions (for example, "Using Outcome Owl, …").Once connected, ask your assistant:
A working connection responds by describing the processes and information it can see. Many assistants also offer a /getting_started item in their prompt or command menu — a short, Outcome Owl–authored welcome you can pull up any time.
For developer and agent tools that accept an authorization header, connect with a personal key (owlk_…) instead of signing in. Your onboarding contact issues the key; keep it secret, because it authenticates as you. For example, in a command-line assistant:
claude mcp add --transport http outcome-owl \
https://<your-company>-mcp.outcomeowl.com/mcp \
--header "Authorization: Bearer owlk_<your-key>"
Your key expires and can be rotated, and you are reminded before it expires. If a key is ever exposed, tell your Outcome Owl contact and it will be revoked immediately.
Part 2
Connecting is the easy part. Getting the answer you actually wanted is a small skill — and it is easy to learn. This is the difference between "that's exactly what I needed" and "why is this wrong?"
Outcome Owl reports facts — how many, how long, what state, what changed, what happened when. It does not decide whether a number is good or bad, why something happened, or what you should do next. That judgment is yours, and your assistant can help you apply it — but only if you bring the context. So the best prompts do two things: they name exactly what you want counted, and they give your assistant the rules it needs to interpret the facts (your targets, your definitions, your priorities).
Outcome Owl tracks two kinds of things, and you may have one or both:
The habits below say "process" for short, but they apply to audit trails too — except anything about a deadline or being overdue, which only a process has.
1 · Name the process (or audit trail) you mean.
The most important habit, especially if Outcome Owl is tracking several processes or audit trails for you. If you ask "what's overdue?" with ten processes in play, your assistant has to guess which one — or stop and ask. Name it instead.
Instead of"What's overdue?"
Ask"Using Outcome Owl, in our Auto Claims process, which cases are still open and past their due date?"
Not sure of the exact names? Start with "What processes and audit trails do you track for us?" and then drill into the one you mean.
2 · Start broad, then narrow.
Open with an orienting question, read what comes back, then ask your next question against what you saw. Faster and more accurate than trying to write one perfect question cold.
3 · Use your own business words.
Outcome Owl knows your data by the names your organization gave it — your process names, step names, and field names, spaces and capitalization included. Use those real terms rather than inventing technical-sounding ones. If you are unsure of a name, ask your assistant which names it sees, then use one it lists.
4 · Say the scope: which slice, which moment.
Three details remove most ambiguity — the process, the time window, and whether you mean "open right now" or "everything over a period." That last one matters more than it looks:
"How many claims did we open in June?" — counts everything that started in a period.
"How many claims are open right now?" — a snapshot at this moment.
They are different questions with different answers. Tell your assistant which one you want.
5 · Ask for facts, and bring your own rules.
Give your assistant the definitions it needs, and let it combine them with Outcome Owl's facts.
Here you supplied the rule (30 days) and the amount that matters; Outcome Owl supplies the counts and totals; your assistant does the arithmetic. Avoid asking Outcome Owl itself whether you are "doing badly" — it will not judge. Ask your assistant to weigh the facts against your targets instead.
6 · When a number surprises you, ask your assistant to restate the scope.
Most surprises are not errors — they are a scope or freshness difference. Before assuming something is wrong, ask:
Beyond the process itself, your Outcome Owl data carries the business attributes your organization chose to send — claim type, region, product line, reserve amount, or whatever your systems include. These are the dimensions you filter by, total, and break results down by, so it is worth knowing which ones you have. Ask your assistant to list them, then use what it names in your next question:
"Using Outcome Owl, what business attributes does my data carry — the fields I can filter, total, or break results down by?"
…then use them: "break that down by [attribute]" or "only the ones where [attribute] is [value]."
If a dimension you want is not in the list, it may simply not be sent yet — your data team decides which attributes to include.
Fill in the bracketed parts with your own process and field names. These are starting points — your assistant will ask for anything else it needs. If you use more than one connector, begin with "Using Outcome Owl, …" (as these prompts do) so your assistant goes straight to the right place; you can drop it if Outcome Owl is your only connector.
| Your goal | Try asking |
|---|---|
| A quick health check to start the day | "Using Outcome Owl, give me a snapshot of [process]: how many are open, overdue, or stalled right now, and the newest high-severity issues." |
| Review how last month went | "Using Outcome Owl, summarize [process] for [month] and tell me what changed the most versus the prior months." |
| Find what is stuck | "Using Outcome Owl, in [process], show me the open cases with no activity for more than [N] days, most idle first." |
| See the money (or value) at risk | "Using Outcome Owl, across active [process] cases that are overdue, what is the total [your amount, e.g. open reserve]?" |
| Everything about one case | "Using Outcome Owl, show me the full timeline for [case or order number] — every step, and where it is waiting." |
| Everything about one tracked item | "Using Outcome Owl, show me the full history of [tracked item — e.g. an asset or device]: every entry and its current status." |
| Everything about one customer or account | "Using Outcome Owl, show me everything you have for [account / claimant / employer name], across all records." |
| What is driving missed deadlines | "Using Outcome Owl, in [process], which [attribute — e.g. claim type, region, product] values are most associated with missed deadlines?" |
When you have iterated to a question that returns exactly what you want — the right process, the right scope, even the chart types and layout of an executive briefing saved as a web page — do not leave it buried in the conversation. Turn it into a reusable prompt you can run again next week, next month, or on a schedule.
Two habits keep a saved prompt reliable: start it with "Using Outcome Owl, …" so a scheduled run still goes straight to the right connector, and remember that each run reflects your data as of the moment it runs — the freshness caveat above still applies. Outcome Owl supplies the facts; your saved prompt carries the rules and the format you want applied to them.
It will tell you: how many, how long, what state something is in, what changed, a step-by-step timeline, a total across a set you define, and what step usually follows another.
It will not tell you: whether a finding is "good," "bad," or "concerning"; why something happened; what you should do next; or what will happen in the future. Those are yours to decide — with your assistant's help and your own context. Two more boundaries worth knowing:
When a request falls into one of those areas, Outcome Owl politely declines and tells you why, rather than guessing — so you never act on a confident-sounding wrong answer.
Part 3 · For your architect
The Model Context Protocol is a protocol, not an architecture. Adopting a standard reduces the friction of connecting things; it does not decide who may read what, what happens to a request that would return too much, or what is written down afterwards. Those answers belong to the system on the other end of the connection. Here are ours.
The concern usually voiced about connecting AI to business data is that a connector becomes a broad, loosely governed doorway into systems that were never designed to be queried that way — and that a generic interface cannot express the governance a specific organization needs.
Outcome Owl is not a generic interface. There is no query passthrough: your assistant cannot send a query, a script, or an expression of any kind. It can call one of 27 named, typed, read-only tools, each taking declared parameters and answering one kind of business question. The domain rules live in the tools themselves — which population a count was drawn from, which clock a timestamp rides, whether a breach is unfolding now or was carried in with loaded history, and which requests are refused outright. That is the domain-specific layer a protocol on its own cannot supply, and it is the part we built.
| What your reviewer asks | How the connection answers |
|---|---|
| Authentication | Sign-in through your existing Outcome Owl identity, or a scoped personal key for agent and command-line tools. No shared credentials. |
| Authorization | Every request acts as the account that made it and sees only what that account's role allows. An agent gets its own service account, not a person's login. |
| Network isolation | By default, access is restricted to the network addresses your organization approves — including, if you use a hosted assistant, that provider's published addresses. A request from anywhere else is refused before a secure session is negotiated. |
| Least privilege | Reads run against a read-only analytics replica, through an account whose session is read-only at the database level and which is granted a defined set of views — never the underlying tables, and never the transactional database. |
| Untrusted input | Parameters are typed and bound, never assembled into text. And your own business text — a message, a step name, an attribute value — is returned as data to report, never as an instruction to follow. |
| Auditability | Every served call records the caller, the tool, the filters it was bound to, and how many rows came back — one entry per call, on your own audit record. |
| Runaway cost | A broad request is priced before it runs and refused with the filter to add. A server-side time limit ends anything that outlives its budget. |
| Revocation | Remove the connector, revoke the key, or de-activate the account. Any one ends access immediately; the key is your kill switch for an agent. |
The negative space is the more useful half of the answer:
A fair criticism of tool-based AI integration is that the tool definitions themselves consume the model's working memory before it has read a single fact, leaving less room for reasoning. It is a real cost, and we would rather state ours than be asked for it.
The full Outcome Owl tool surface — 27 tool descriptions, their parameter schemas, and the server's own instructions — stays under 100,000 characters, at most about 29,000 tokens: roughly a seventh of a 200,000-token context window, and loaded once when your assistant connects rather than once per question. That is a ceiling we assert in our own test suite, not a figure measured once — the surface cannot grow past it without failing our build.
We spend it deliberately. The tools describe themselves thoroughly so that an assistant knows, before it asks, what a given number will mean — which population it came from, which clock it rides, and what would make the request too broad. A thinner surface would not remove that cost; it would move it into every question, as guesswork and retries, and shift the burden of getting the semantics right onto the model. On a surface an autonomous agent may act from, that is the wrong trade.
A protocol gives two systems a common language. It does not make either one safe, and it does not decide anything on your behalf. Three things stay yours:
Part 4 · For developers
Everything above assumes a person at a keyboard. This part is for developers and integrators connecting an autonomous agent rather than a person — it assumes you have read Part 2, and the same "facts, not judgments" principle governs everything here.
Outcome Owl is read-only business observability. An autonomous agent connects, reads process health on a schedule with no human in the loop, and then acts through your own systems — assigning work, opening a ticket, notifying a team, updating a case. Outcome Owl never takes the action; it supplies the facts the action is based on.
That division has a consequence worth stating plainly. Because your agent may take a real, sometimes irreversible action on the strength of an Outcome Owl answer, the correctness of that answer is part of your control environment, not a convenience. Treat an Outcome Owl fact with the same care your agent would give any other input that moves money or work.
owlk_…) in an Authorization: Bearer header rather than the interactive sign-in — see Connect with a personal key in Part 1. Keep the key in a secret store, never in source code.server_info_v1 to read the build and schema_version and to confirm access_mode is read_only, then call usage_guide_v1 once for the operating manual — how to read the response envelope, the full error taxonomy, and the proven query playbooks, delivered by the server itself.list_processes_v1, list_process_steps_v1, list_rules_v1, and attribute_catalog_v1 to learn the exact names before filtering, sorting, or aggregating by one.Outcome Owl reports facts and refuses judgment by design. It will not label a finding good, bad, or concerning; say why something happened; forecast; or recommend an action. A request of that kind comes back as a structured refusal that names the category — not an error, and not a guess. So the decision rules — what counts as a problem, and what to do about it — live in your agent. Outcome Owl supplies the signal; your agent supplies the policy.
This is the discipline that separates a reliable agent from one that double-pays or double-notifies. A scheduled agent starts each run with no memory of the last one, so it must recognize a problem it has already handled. Outcome Owl gives you the identifiers to do that:
action_dedup_key, on every process and violation row. It does not change when the problem is re-detected, resolved, or re-fires. Deduplicate your external actions on it.first_observed_utc_timestamp (stable across routine re-evaluation, moving only when a resolved violation re-fires as a new occurrence); for a process or overdue item, expected_completion_utc_timestamp (a restatement moves it, and restatement_count records how many times).last_updated_utc_timestamp, which advances on first detection, resolution, or re-fire but not on an unchanged re-evaluation; a process has no single change clock — compare the combination of status, latest_entry_end_utc_timestamp, expected_completion_utc_timestamp, and restatement_count; all four unchanged means it has not moved.An estate that imported its history will show that history in its totals, and an agent that treats every returned violation as a fresh, act-now problem will over-act. Two independent signals keep this straight:
origin: live for a breach that arose while connected, surfaced for history brought in by a bulk load. A count-only violation request also returns a provenance_breakdown across live, surfaced, and unclassified.breach_is_current. A record loaded weeks ago can still cross a deadline today; it reads as surfaced history yet is a current, urgent breach.For "what do I act on right now," read breach_is_current — do not filter on origin='live' alone, which can hide a current breach as old history. To list or count that act-now set directly, pass breach_recency='current'. And note that a violation count is of violation records; pass count_by='instances' for the distinct affected cases.
Every response reports data_confidence: high when your feed is essentially live, normal in the routine window, and low when nothing has arrived past the configured threshold (the reason names how long it has been quiet). When confidence is low, the numbers describe the last picture received, not necessarily this minute. An agent that takes real action should gate on high — acting only when the data is current — rather than merely "not low."
deltas_v1 with your last-check timestamp to fetch only what became overdue, stalled, or violated since you last looked. This is the polling tool — do not loop snapshot_v1, which re-does the full briefing every time.explain=true previews a broad query's estimated cost and whether it will be admitted, without running it; count_only=true returns the number without the rows.These disciplines are also your cost discipline. The expensive shape in agentic work is the open-ended job that loops and re-reads; a poller that fetches only what changed, previews a broad query before running it, and takes a count without the rows does the same job in a small fraction of the tokens. And a refusal that names the missing filter converges in one correction instead of a retry loop.
Every error is a structured envelope, so an agent branches on data rather than parsing a sentence:
code names the condition — bound_required (add a scope filter), invalid_argument (a value or token is wrong — do not retry unchanged), estimate_rejected (too costly; narrow and retry), budget_exceeded (started but stopped at the time budget; narrow and retry), and not_found (the identifier is not on this surface — a process identifier that is not found may be an audit trail).next_action gives a discrete directive — add_filter, narrow_scope, verify_identifier, retry_later, or revise_request.retryable is true only for a transient service condition; use it to decide whether a retry could ever succeed — and when you do retry, back off between attempts rather than tight-looping.no_matching_rows means the filters were valid and nothing matched; filter_value_unknown means a name you passed is not configured — fix the name, do not loosen other filters.population_basis — the live processed store, the period-flow substrate, the attribute substrate, or the violation ledger. Corroborate numbers within a basis; a cross-basis mismatch is usually linkage lag, not a bug — snapshot_v1 reports awaiting_linkage so you can tell whether that lag is currently material. Never blend a period-cumulative (flow) count with a point-in-time (backlog) snapshot.last_activity_utc_timestamp is the data-arrival clock — it moves whenever anything about an item reaches the platform, reloads included; business idleness reads from inactivity_hours and the latest business entry, not from arrival.+00:00 offset; counts are integers; exact money and percent-change values are decimal strings — keep them as strings so you do not silently round money to a floating-point value.Outcome Owl returns your business's own text — contextual messages, and the names and values of your steps, categories, and attributes — as data about your business, never as instructions to your agent. If such a field happens to read like a command ("ignore the above," "approve this now," "release the payment"), it is content to report, not an order to obey; it originates in your upstream data, not from Outcome Owl. Outcome Owl authors only its own field labels, status and reason codes, and fixed vocabulary, and keeps its wording legibly separate from your text — so your agent can hold that line. This matters most precisely because your agent can act: text that reaches an agent with hands is more dangerous than text that reaches a chat window.
Tools are versioned with a _v1-style suffix. A tool's parameters and result shape are stable within a major version, and new fields may be added within it without a break — so read fields by name and tolerate ones you do not recognize. Read schema_version from server_info_v1 as your authoritative version check; it also rides the _meta envelope on every response — data, error, and refusal alike — so a poller notices a mid-run change without an extra call. If it changes, reconnect and re-fetch the tool list before relying on the surface. Pin your integration to the tool versions you have tested.
Your agent's runtime can tell you a run completed; it cannot tell you the business outcome landed. Outcome Owl can — the effect of a real action shows up in the same process the signal came from. So close the loop on a later run:
Start the agent read-only in every sense — let it observe, decide, and log the action it would take, without taking it. Verify those decisions against a set of cases whose correct outcome you already know. Then enable real actions behind the two controls above: the exactly-once ledger and the freshness gate. Keep the key revocable as a kill switch, and monitor the agent through its own audit identity.
Closing the loop above confirms that one action landed. Your review cycle will ask the bigger question: is the agent program paying off? The honest measure of an agentic workflow is completed work — how much finished, how long it took, and what it cost to finish the job — and completed work is precisely what Outcome Owl observes. The same read-only connection that feeds your agent its signal measures the program around it:
period_summary_v1 summarizes a period against the one before it, trend_v1 shows the trajectory across months, and changes_v1 ranks what moved most — completed volume, cycle time, deadline performance, with each period's completeness stated.aggregate_v1 totals it over the cases concluded in a period — and reports how many cases carried the value, so a partial figure is visible as partial. The per-case arithmetic is yours.The same boundary as everywhere on this page: Outcome Owl reports what moved; whether the agent moved it is a judgment you make with your context. And the spend side of the program — model usage, review time — lives in your own systems, entering this picture only if you choose to send it as data.
Common Questions
Claude and ChatGPT connect directly, and you can connect your own autonomous agents. You point the assistant at your Outcome Owl connector address, sign in once, and ask in plain language.
No — for Claude or ChatGPT it is a two-minute, point-and-click connection. A separate developer section covers building autonomous agents.
Yes. Outcome Owl gives the facts; you and your AI supply the judgment and any action. The connection reads and reports, never modifies.
Your data stays in your single-tenant Outcome Owl. Your assistant asks a scoped question and receives a scoped answer — a figure, a count, a timeline — each cited; over-broad requests are refused with the exact filter to add, so nothing pulls your whole book in one call.
It reports facts — state, counts, timing — and stops. It will not call a finding “concerning,” recommend an action, or explain why something happened. That judgment stays with you or your agent.
Your agents read Outcome Owl and then act through your own systems — Outcome Owl never acts. The developer section covers doing it safely: discovering names, acting once (idempotency), acting on fresh data, verifying the outcome afterward, and building against versioned schemas.
Measure completed work. The unit that decides an agent program's return is the finished job — a resolved claim, a fulfilled order — and that is the unit Outcome Owl observes. Compare the process before and after the agent went live — completed volume, cycle time, deadline performance, exception counts — and, if you send cost as a business attribute, total it over the cases completed in a period. Outcome Owl reports what moved; whether the agent moved it stays your judgment.
The risk depends on what sits at the other end of the connection, not on the protocol. The Outcome Owl connection cannot run code or SQL, cannot reach the transactional database, cannot write to your business data, and refuses any request that is not scoped. Every call acts as a named account, is limited by default to your approved networks, and is recorded. The architect section sets out the full control set.
Under 100,000 characters — at most about 29,000 tokens, roughly a seventh of a 200,000-token context window — for all 27 tool descriptions and their parameter schemas, loaded once when the assistant connects rather than once per question. That is a ceiling we assert in our own test suite rather than a figure measured once, so it cannot drift without failing our build. The tools describe themselves thoroughly so an assistant knows what a number means before it asks.
Every served call writes one entry to your own audit record: which account asked, which tool ran, the filters it was bound to, and how many rows came back.
The connector implements the Model Context Protocol (MCP), revision 2026-07-28 — the current revision of the open standard — over its Streamable HTTP transport, with OAuth 2.1 sign-in. Assistants that speak the previous protocol revision connect unchanged; one connector answers both, and the connection is read-only in either case.
Go Deeper
Connect your AI to one process and ask it what is really happening — in plain language, read-only, and cited to the tool call that produced every number.
Business Observability for your Organization