inite-diagnostic
OfficialINITE Diagnostic — a process audit your agent can run
Point an assistant at a business process and get back what it costs today, where it breaks first, and what to automate next.
> Our WhatsApp enquiries take until morning to answer. Is that worth fixing?
start_audit(language: "en") → audit_token: 9f2c…, first question
answer_audit(field: "channels", value: "whatsapp, instagram")
answer_audit(field: "dailyInquiries", value: "50-100")
…
answer_audit(finish: true) → findingsIt is the same audit that runs at inite.solutions/en/audit.
Two depths
Free — eight questions about one process. Pick the thing your people still do by hand. The interview maps it and says what it costs now and what changes if it runs itself. No account needed in the browser; from an agent, the interview and the arithmetic need none either — see Works before you sign in — and the reading itself needs one.
Premium — forty-three slots across the whole business, grouped into strategy, marketing, operations, finance and technology. The interview has a budget of thirty-five questions against those forty-three slots, so it must leave some unasked, and choosing which is the part worth having a model for. It routes by the share of each area still open, not by the count, so one expert cannot conduct two thirds of the conversation.
The first eight slots of a premium run are the free eight, unchanged. An audit that upgrades mid-way is not asked them twice.
Works before you sign in
Two of the tools run entirely on your machine. No account, no allowance, no call home.
diagnostic_questions hands over the interview itself — the eight things a
diagnostic has to establish, in the words they are asked in — and your
assistant conducts it, in the person's own language, with options that look
like their industry. read_answers then does the arithmetic on what came back.
> Eighty enquiries a day between the two of us, mostly WhatsApp, kept in a spreadsheet.
read_answers(answers: {...})
From what you have been told:
80 enquiries a day across 2 people — 40 each.
12 of them become leads — 15% of what arrives.
3 channels enquiries arrive on. The record of them: a spreadsheet.
That is the arithmetic. What it cannot do is say what to automate first.The split falls where the competences do. A model conducts an interview far better than it divides eighty by two and remembers what the range said, so the caller asks and this counts — and every assumption it had to make is printed beside the result ("read 50-100 as 75").
Signing in adds the audit itself: the next question chosen from everything already said, the findings written against them, a run saved under your account that you can come back to, and the forty-three question depth.
Install
Claude Desktop, Cursor, or any client that launches a stdio server:
{
"mcpServers": {
"inite-diagnostic": {
"command": "npx",
"args": ["-y", "@inite/diagnostic"]
}
}
}Then, when you want the audit rather than the arithmetic:
npx @inite/diagnostic loginThat opens a browser, you approve, and the token is stored at
~/.config/inite/mcp-diagnostic.json with owner-only permissions.
Authorization code with PKCE over a loopback redirect, the flow RFC 8252
prescribes for a native app. Nothing is written to the repository and no secret
ships in the package.
Its own file, not the one @inite/visibility writes. Both tokens are
issued by the same authorization server and belong to the same person, and
neither works in the other's place: RFC 8707 binds each one to the resource
it was asked for. Sharing a file would mean the second login silently
replaced the first one's token with something that 401s. For the same reason
this package reads INITE_DIAGNOSTIC_TOKEN before INITE_TOKEN.
Tools
tool | what it does | account |
| The eight fields, in the words they are asked in, for you to interview from | no |
| The arithmetic on what you collected, with every assumption stated | no |
| Begins the interview, returns the first question and an | yes |
| Records one answer against the field the question named, returns the next question — or the findings when the interview is over | yes |
| Depth, what was answered, what was declined, what is still open, and the findings if they exist | yes |
| Spends a paid run if the account has one; otherwise returns a checkout link | yes |
upgrade_audit deliberately stops short of buying. With nothing paid for on
the account it hands back a URL for a person to open. An agent is not given a
way to spend somebody's money unattended.
Answers the model does not have
"__skip__" is a valid answer and a better one than a guess. A guessed answer
produces a confident wrong finding, which is worse than a gap the audit can
name — and the findings say what they could not tell rather than inventing it.
Fields are a closed list
Every question names the field it fills, and that name comes from a fixed list. The model chooses which slot to raise next, how to word it and what to offer as answers; it does not choose what the answers are called. This is enforced by the schema rather than checked afterwards — the field is an enum built per call from what is still missing, so a question about anything else cannot be expressed.
That constraint exists because the version without it failed in a specific way: the panel stayed empty while the visitor answered, and the lead reached the CRM as a wall of JSON under "Industry: N/A".
The full list, generated from the server's own definitions, is in SLOTS.md.
Connect without the package
A client that speaks the MCP authorization flow can talk to the remote server directly. There are no local tools that way — the two above live in the package — and every call needs a token.
{
"mcpServers": {
"inite-diagnostic": {
"type": "http",
"url": "https://inite.solutions/api/mcp"
}
}
}Authentication
Every call to the remote server needs a bearer token, and the only thing available without one is how to get a token. The two local tools need nothing.
An unauthenticated request returns 401 with a WWW-Authenticate header
pointing at
/.well-known/oauth-protected-resource,
which names auth.inite.ai as the authorization server. A client that speaks
the MCP authorization flow walks that chain on its own: it registers, a human
approves in a browser, and every run after that belongs to somebody.
An agent is the same person arriving through a different door, so the quota, the entitlement and the audit rows are the account's own — not a second class of user with a separate allowance.
Registry
Published as solutions.inite/inite-diagnostic. The namespace is proved by an
ed25519 key served at
/.well-known/mcp-registry-auth.
The manifest that publishes it lives beside the server itself rather than here, so there is one copy of it and no way for the two to disagree. This repository is the readable half: what the server is, what it asks, and what it will not do.
The rest of the family
server | what it is for |
Whether the answer engines can see a website | |
| Membership, events, the shared workspace |
| The scoring behind an audit allowed to say no |
Bitemporal memory for agents |
License
MIT. See LICENSE.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/inite-ai/inite-diagnostic'
If you have feedback or need assistance with the MCP directory API, please join our Discord server