listProjects
List knowledge projects
List the knowledge projects you are allowed to see in this Sasha instance. Start here to discover what knowledge exists, then use listDocs or searchKnowledge.
Arguments
No arguments.
Scopes
knowledge:read
Annotations
- Read only: yes
- Destructive: no
When to use
Call listProjects at the start of a session. It tells you which projects exist for this connection. The core loop is listProjects, then searchKnowledge, then readDoc.
The tool needs the knowledge:read scope. It takes no arguments.
The list depends on the role of the person who connected:
- A member sees their own member home and each ordinary project where they hold a grant.
- Admin and staff see every active ordinary project. They never see a member home.
Each project has a kind: ordinary for a shared project, or member-home for a member's own home.
The id, name and projectId fields hold the same value. Pass that value as project to the other knowledge tools.
Example
The request has no arguments.
{}
{
"projects": [
{ "id": "northwind-advisory", "name": "northwind-advisory", "projectId": "northwind-advisory", "kind": "ordinary" },
{ "id": "client-onboarding", "name": "client-onboarding", "projectId": "client-onboarding", "kind": "ordinary" },
{ "id": "member-14", "name": "member-14", "projectId": "member-14", "kind": "member-home" }
]
}
Refusals and what to do
- If the connection does not hold
knowledge:read, the tool is not in your tool list, and a call to it returnsMCP error -32602: Tool listProjects not found. Read thepermissionssection ofgetDocs. A scope is never added to an existing connection: the person must reconnect, or mint a new token, withknowledge:read. - An empty
projectslist is not an error. It means that this person can see no project. A member needs a grant from an admin to see a shared project.
Related
listDocslists the documents in one project.searchKnowledgesearches every project in this list, or one of them.readDocreads one document.getDocsexplains the knowledge layout in itsknowledgesection.