What you can do
Find articles
Search and browse published articles and drafts, and read their full content.
Write and publish
Create articles in a category, revise them, and move them between draft and published.
Share privately
Generate and regenerate unlisted links, with or without an expiry.
Manage the workspace
Browse the category tree, list authors and recommendations, and invite team members.
MCP vs CLI: which should I use?
NeetoKB’s CLI reaches the same resources MCP does - articles, unlisted links, categories, authors, recommendations, team members, and workspace settings. The one exception is small: only MCP can read a published article from a knowledge base you are not signed in to. Otherwise neither side can do more than the other, so choose on how the work reaches NeetoKB.Reach for MCP when
- The words live in your chat, not in your head. A support thread, a customer email, or a pasted release note becomes the article body with no retyping and no hand-written markup. The CLI wants the finished HTML from you, and it cannot see the conversation it should come from.
- You have not decided the steps yet. “Our refund window moved to 30 days - fix whatever still says 14” means searching, reading each hit, and judging which ones are genuinely wrong. A command can only carry out a decision you have already made.
- One request should cover several steps. Find the article, read what it says today, rewrite only the paragraph that is stale, publish it, and hand back an unlisted link for a colleague to check. A script can pass an article id from one command to the next, but it cannot read the body and work out what to change in it.
- The person doing it does not use a terminal. A support lead or a writer can keep the knowledge base current from a chat window. NeetoKB hosts the server, so there is nothing to install or keep updated.
Reach for the CLI instead when
- No AI assistant should be in the loop. A cron entry or a docs pipeline runs the CLI against a workspace it is already signed in to - no assistant open, no model account, no tokens spent per run. Every MCP call needs something with model access running.
- The output feeds another program. The CLI prints a bare article id, or raw JSON with a
paginationblock, straight intojq, a spreadsheet, or your own script. Here you get prose you would have to copy out by hand. - You are sweeping the whole knowledge base. Here every page is a separate tool call, and a thousand article titles crowd out the assistant’s context long before the audit is finished. The CLI returns
total_pagesandtotal_recordsnext to the records, so a shell loop walks every page unattended and writes each one to a file or intojq- the size of the knowledge base stops mattering. - The run has to be repeatable and reviewable. A command is the artifact: it records exactly what ran and repeats identically in a runbook or a pull request. Ask twice here and the assistant may take a different route.
What you need
- A supported AI assistant - Claude, ChatGPT, Claude Code, Codex, Cursor, Gemini CLI, VS Code (GitHub Copilot), or Windsurf.
- A way to authenticate. Claude and ChatGPT sign you in with OAuth, so there is nothing to copy. The others use a NeetoKB API key - learn how to generate one.
The two credentials differ in reach, not just in setup. An OAuth grant runs as you, so the assistant sees only what your permissions allow. An API key carries no identity and reaches the whole workspace, drafts and private categories included. Authentication explains which to pick.