Skip to main content
Glama

organisation.md

your team's living memory — an mcp server backed by a git repo.

MIT License CI

organisation.md turns any github repository into your organisation's persistent context layer. any mcp-compatible ai tool (claude code, cursor, etc.) can read, search, and propose updates to your team's shared context — without a database, without a hosted service, without leaving your github account.


how it works

  1. fork this repository into your github organisation.

  2. edit organisation.md with your team's identity, projects, decisions, and preferences.

  3. run the mcp server — your ai agents connect and read/write context naturally.

all changes go through pull requests — your team reviews and merges them. git provides version history, branching, and access control out of the box.

Related MCP server: git-context-mcp

quickstart

1. generate a personal access token

go to github.com/settings/tokens and generate a classic token with the repo scope. copy the token — you'll need it in the next step.

export GITHUB_TOKEN=ghp_your_token_here
export GITHUB_OWNER=your-github-username-or-org
export GITHUB_REPO=organisation.md
npx @shashank-sn/organisation-md

that's it. the mcp server starts in stdio mode and your ai agent can connect.

3. run in sse mode (for remote agents)

export GITHUB_TOKEN=ghp_your_token_here
export GITHUB_OWNER=your-github-username-or-org
export GITHUB_REPO=organisation.md
export TRANSPORT=sse
npx @shashank-sn/organisation-md

the server starts on http://localhost:3000/sse. configure your remote mcp host to connect to this endpoint.

4. or clone and run locally

git clone https://github.com/your-org/organisation.md.git
cd organisation.md
npm install
export GITHUB_TOKEN=ghp_your_token_here
export GITHUB_OWNER=your-github-username-or-org
export GITHUB_REPO=organisation.md
npx tsx src/server.ts

4. connect to your ai agent

the server speaks mcp over stdio. configure your ai tool to launch it:

claude code — add to your .mcp.json:

{
  "mcpServers": {
    "organisation.md": {
      "command": "npx",
      "args": ["@shashank-sn/organisation-md"],
      "env": {
        "GITHUB_TOKEN": "ghp_...",
        "GITHUB_OWNER": "your-org",
        "GITHUB_REPO": "organisation.md"
      }
    }
  }
}

cursor / continue / other mcp hosts — point to the same command with env vars.

tools

tool

description

read_org

read the full organisation.md file from the github repo

read_section

read a specific section by heading (e.g., "team", "decisions")

update_section

propose an update to a section — creates a pull request

search_context

search across organisation.md and all context/ files

propose_change

propose a change to any file in the repo — creates a pull request

list_context_files

list all files in the context/ directory

import_file

import a txt, md, or docx file into the knowledge base

add_info

add information via natural language — auto-detects the section

remove_info

remove information matching a description

check_roles

check git-based roles and codeowners

check_permissions

check if you can add/delete/approve/merge

configure_codeowners

update .github/codeowners for team access control

report_bug

auto-detect the area and file a github issue

suggest_feature

suggest a feature or improvement as a github issue

repository structure

organisation.md/
├── organisation.md          # canonical org context file
├── context/                 # supporting context files
│   ├── README.md
│   ├── projects.md          # detailed project info
│   ├── architecture.md      # system architecture
│   └── people.md            # team members and roles
├── src/                     # mcp server source (typescript)
│   ├── server.ts            # entry point
│   ├── github/              # octokit wrapper (files, git api)
│   ├── content/             # markdown parser and template
│   ├── tools/               # mcp tool implementations
│   └── resources/           # mcp resource templates
├── docs/                    # documentation
│   ├── quickstart.md        # full setup guide
│   ├── agent-prompt.md      # prompt template for ai agents
│   └── example-flows.md     # common workflows
├── scripts/
│   └── build-site.mjs       # github pages build script
├── .github/workflows/
│   ├── ci.yml               # ci: typecheck + test on push/pr
│   └── pages.yml            # github pages deployment
├── strategy.md              # product strategy
├── license                  # mit
└── README.md

configuration

copy .env.example to .env and fill in your values:

cp .env.example .env

variable

required

default

description

GITHUB_TOKEN

yes

github personal access token with repo scope

GITHUB_OWNER

yes

github username or organisation that owns the repo

GITHUB_REPO

yes

repository name (e.g., organisation.md)

TRANSPORT

no

stdio

transport mode — stdio for local mcp hosts, sse for remote connections

PORT

no

3000

port for sse transport (only used when TRANSPORT=sse)

customisation

  1. edit organisation.md — replace the template content with your team's actual identity, projects, and decisions.

  2. add context/ files — create additional markdown files for deeper context (architecture docs, runbooks, etc.).

  3. fork and rename — fork the repo into your org and update the env vars to point at your fork.

development

npm install
npm run dev         # development server with hot reload
npm test            # run tests
npm run typecheck   # typescript checking
npm run build       # compile typescript
npm run build:site  # build github pages site locally

license

mit — fork it, use it, ship it. see license.

Available Tools

12 tools
add_infoA

add information to the knowledge base using natural language. describes what to add, and the tool figures out which section and file to put it in.

ParametersJSON Schema
NameRequiredDescriptionDefault
infoYesthe information to add, in natural language (e.g., 'our new project is called veridian, led by alice, focused on data pipelines')
sourceNooptional source reference (e.g., 'meeting notes 2025-06-20', 'slack thread')
sectionNospecific section to add to (auto-detected if omitted)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries behavioral disclosure. It states the tool 'figures out which section and file to put it in', which adds context about automatic placement. However, it does not discuss side effects, permissions, or whether it overwrites or appends.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences. It immediately states the purpose and key behavior, with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool modifies the knowledge base, but the description omits what the tool returns, error handling, or permission requirements. While the basic use case is covered, a modification tool typically needs more context for safe usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter described. The overall description reinforces the 'natural language' aspect and auto-detection for section, but does not add significant new meaning beyond the schema for individual params.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: to add information to the knowledge base using natural language, and it specifies that the tool determines the appropriate section and file. This distinguishes it from sibling tools like update_section or remove_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for adding natural language info, but does not explicitly mention when to use this tool versus alternatives like propose_change or import_file. No 'when not to use' guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_permissionsA
Read-only

check if the current user can perform a specific action (add, delete, approve, merge).

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesthe action to check
pathNooptional file path to check permissions against codeowners pattern

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the read-only nature consistent with annotations (readOnlyHint=true) and adds the context of specific actions. However, it does not explain return format or behavior on denial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that communicates the core purpose without any wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple tool and good annotations, the description covers the main purpose but omits the optional path parameter and does not describe the result format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so description adds limited value. It mentions the actions from the enum but does not add meaning beyond the schema's parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (check) and resource (permissions for the current user), and lists the specific actions (add, delete, approve, merge). This distinguishes it from siblings like check_roles.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used to check permissions for actions, but provides no explicit guidance on when to use versus alternatives like check_roles, nor any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_rolesA
Read-only

check who has what permissions on this repo. reads the codeowners file and current collaborator permissions.

ParametersJSON Schema
NameRequiredDescriptionDefault
userNocheck permissions for a specific github username

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=true, and the description confirms it reads files (codeowners, collaborator permissions), adding behavioral context. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the main action. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter and no output schema, the description adequately explains the tool's behavior and sources. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description mentions checking permissions for a user, which aligns with the 'user' parameter but does not add significant extra meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'check' and the resource 'permissions on this repo', and explains the method (reads codeowners file and collaborator permissions). It distinguishes itself from siblings like configure_codeowners or check_permissions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus siblings like check_permissions. The description implies its purpose but does not provide selection criteria or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

configure_codeownersB

update the .github/codeowners file to define who can approve changes to specific paths.

ParametersJSON Schema
NameRequiredDescriptionDefault
patternYespath pattern (e.g., 'organisation.md', 'CONTEXT/', '*.md')
ownersYesgithub usernames or team names, space-separated (e.g., '@alice @bob' or '@org/team')
messageNodescription of why this ownership is being added/changed

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but only states 'update', implying mutation without disclosing effects (e.g., file overwrite, permission requirements, impact on PRs).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence with no filler, though it could benefit from more detail without being verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, no annotations, and three parameters, the description is too minimal. It lacks information about return values, error conditions, or prerequisites, leaving the agent underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no extra context beyond the action, so it meets the baseline but adds no value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it updates the .github/codeowners file to define ownership for specific paths, which is a specific verb+resource and distinguishes it from sibling tools like add_info or remove_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention when not to use it or any prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_fileA

import a file (txt, md, docx) into the repo as context. creates a context/ entry and updates the organisation.md index. the ai agent passes file content it has already read.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNameYesfile name (e.g., 'onboarding.md', 'runbook.txt', 'spec.docx')
contentYesfull text content of the file (plain text for txt/md, base64-encoded for docx)
fileTypeYesfile type — determines how content is processed
sectionNowhich organisation.md section to link from (auto-detected from filename if omitted)
messageNobrief description of what's being imported

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the creation of a context entry and index update, and clarifies the tool expects already-read content. It could mention potential overwrite behavior or access needs, but is sufficiently transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, very concise. It covers the main action and a key constraint (AI already read content). However, it could be structured with bullet points for side effects, but remains effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, 3 required, and no output schema, the description lacks details on return value, error conditions, or behavior when file type mismatches. It is adequate for a simple tool but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the baseline is 3. The description adds little beyond schema: it lists supported file types and implies the section auto-detection. This is adequate but does not enhance understanding significantly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'import', the resource 'file into the repo as context', and the side effects (creates context entry and updates organisation.md). It distinguishes from siblings like list_context_files and search_context by specifying it adds new content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description notes that the AI agent should pass file content it has already read, providing clear context for when to use. However, it does not explicitly mention when not to use or suggest alternatives like search_context for existing files.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_context_filesB
Read-only

List all files in the CONTEXT/ directory of the repo.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description need not add safety info. However, it provides no additional behavior details (e.g., whether hidden files are included).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise single sentence, no redundant words, front-loaded with the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description covers the basic operation, it lacks output schema details (e.g., whether file names, sizes, or timestamps are returned), leaving the agent uncertain about the response format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the description correctly adds no parameter details. Schema coverage is 100%, meeting the baseline for zero-param tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'List' and resource 'files in the CONTEXT/ directory' clearly state what the tool does. However, it does not distinguish from sibling 'search_context', which could also list context files.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'search_context' or 'import_file'. The description simply states the function without context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

propose_changeB

Propose a change to any file in the organisation.md repo. Creates a pull request.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path relative to repo root (e.g., 'CONTEXT/projects.md')
contentYesNew content for the file
messageYesCommit message describing the change

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description discloses the key behavioral trait: it creates a pull request, indicating a non-destructive proposal. However, it lacks details on authentication requirements, rate limits, or what happens to the file upon creation of the PR. The core behavior is adequately conveyed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at two sentences, front-loads the key verb and resource, and contains no superfluous information. Every word contributes to understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (3 required parameters, no enums, no output schema), the description covers the core functionality. However, it lacks context on return values, error handling, and how it fits with sibling tools, leaving some gaps for an AI agent to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes all three parameters with 100% coverage (path, content, message). The description adds no additional semantic information beyond the schema, so it meets the baseline but does not enhance parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Propose a change' and the resource 'any file in the organisation.md repo', and specifies that it creates a pull request. This distinguishes it from sibling tools like update_section, though not explicitly. The purpose is clear but could be more direct about file editing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as update_section or add_info. The description implies it's for proposing changes to files via pull request, but does not provide exclusions or when-not-to-use scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_orgA
Read-only

Read the full organisation.md file from the GitHub repo.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds no behavioral context beyond the existing 'readOnlyHint' annotation; it simply restates that the tool reads a file.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no unnecessary words, efficiently conveys the purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Sufficient for a zero-parameter read tool; clarifies the source file and repository, though could optionally mention return value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in schema, so baseline is 4; description correctly implies no input needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'Read' and the specific resource 'organisation.md file from the GitHub repo', distinguishing it from siblings like 'read_section' and 'list_context_files'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives; for example, no mention of when to use 'read_section' instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_sectionA
Read-only

Read a specific section from organisation.md by heading name.

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionYesThe section heading to read (e.g., 'Team', 'Identity')

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description adds minimal behavioral context beyond restating the read operation. No contradictions. Additional details like handling of missing headings could improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with verb and resource, no superfluous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read operation with one parameter and annotations present, the description is mostly complete. Lacks specifics on heading matching (e.g., case sensitivity, exact format), but adequate for common use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter 'section', which includes an example. The tool description merely echoes 'by heading name', adding no new semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (read), the resource (specific section from organisation.md), and the method (by heading name). It distinguishes from siblings like 'read_org' which reads the whole file.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives such as 'read_org', 'search_context', or 'update_section'. The description does not mention exclusion criteria or alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_infoB

remove information from the knowledge base using natural language. describes what to remove, and the tool finds and removes it.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesdescription of what to remove (e.g., 'remove the project veridian entry', 'delete alice from team')
sectionNolimit removal to a specific section

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries full burden but only states 'finds and removes it.' It does not disclose permanence, reversibility, permissions, or side effects on related data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, 21 words, no redundant phrasing. Could be slightly more front-loaded but is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and no description of return values or success/failure behavior. For a mutation tool, this is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. The description adds no new meaning beyond the schema, so baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool removes information from the knowledge base using natural language, with a specific verb and resource. It distinguishes from siblings like add_info and search_context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when or when not to use this tool versus alternatives like update_section or search_context. The description only mentions natural language input but does not set exclusions or preferences.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_contextA
Read-only

Search across organisation.md and CONTEXT/ files for matching text.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch term to find across context files

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, and the description adds the scope of files searched, providing some additional context but not full behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise sentence with no wasted words, front-loading the purpose effectively.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description does not specify the return format or behavior, which would be helpful given the lack of output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'query' is fully described in the schema (100% coverage), so the tool description does not add meaning beyond what is already provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the verb 'Search' and the resources 'organisation.md and CONTEXT/ files', distinguishing it from sibling tools like 'read_org' which reads a single file.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for searching text across specific files but lacks explicit guidance on when to use vs alternatives or when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_sectionB

Propose an update to a section in organisation.md. Creates a pull request for review.

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionYesThe section heading to update
contentYesThe new content for this section
messageYesA brief description of what changed and why

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that it creates a pull request, implying a non‑destructive workflow. However, no annotations exist, and details like permissions, prerequisites, or what happens if the section is missing are omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front‑loaded sentences with no unnecessary words. Each sentence serves a clear purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Provides the essential purpose and outcome, but given no output schema and no annotations, more context (e.g., behavior on missing sections, review process details) would improve completeness for a tool among many siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters have schema descriptions (100% coverage), and the tool description does not add any additional meaning or usage hints beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'update' and resource 'section in organisation.md', and mentions the outcome 'creates a pull request for review'. However, does not distinguish from sibling tool 'propose_change' which may have similar function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use or when to avoid. With siblings like 'propose_change' and 'read_section', the description does not help the agent choose between them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 12 tool updatesv0.1.0
    • First observedadd_info
    • First observedcheck_permissions
    • First observedcheck_roles
    • First observedconfigure_codeowners
    • First observedimport_file
    • First observedlist_context_files
    • First observedpropose_change
    • First observedread_org
    • First observedread_section
    • First observedremove_info
    • First observedsearch_context
    • First observedupdate_section

TDQS

A3.8/5.0

Scored across 12 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: reading (read_org, read_section), writing via PR (update_section, propose_change), natural language modifications (add_info, remove_info), permissions (check_permissions, check_roles, configure_codeowners), and file management (import_file, list_context_files, search_context). No two tools overlap in functionality.

Naming Consistency5/5

Tool names consistently follow a verb_noun pattern in snake_case (e.g., add_info, list_context_files, update_section). All names are clear and predictable, with no mixing of conventions.

Tool Count5/5

With 12 tools, the server is well-scoped for its purpose of managing an organisation.md knowledge base and associated context files. Each tool addresses a specific operation, neither too few nor too many.

Completeness4/5

The tool set covers reading, updating, adding/removing information, searching, importing files, and permissions. Minor gaps include no tool to delete a context file directly (only import and list) and no direct write without PR, but these are reasonable for a review-based workflow.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers