organisation.md
This MCP server turns a GitHub repository into a persistent, AI-accessible knowledge base, allowing AI agents to read, search, and propose changes to shared organisational context through pull requests.
Read & Search
read_org— Retrieve the fullorganisation.mdfileread_section— Fetch a specific section by heading (e.g., "Team", "Decisions")search_context— Search acrossorganisation.mdand allCONTEXT/fileslist_context_files— List all files in theCONTEXT/directory
Write & Propose Changes
update_section— Propose an update to a specific section (creates a pull request)propose_change— Propose a change to any file in the repo (creates a pull request)add_info— Add information in natural language; auto-detects the right section/fileremove_info— Remove information by natural language descriptionimport_file— Import a.txt,.md, or.docxfile into the knowledge base
Access Control & Permissions
check_roles— View who has what permissions via CODEOWNERS and collaborator settingscheck_permissions— Verify if the current user can add, delete, approve, or mergeconfigure_codeowners— Update.github/CODEOWNERSto control approval rights per path
Issue Tracking
report_bug— Auto-detect area and file a GitHub issuesuggest_feature— File a feature request as a GitHub issue
Provides tools to read, search, and update an organization's context stored in a GitHub repository, including creating pull requests for changes.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@organisation.mdread the decisions section"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
organisation.md
your team's living memory — an mcp server backed by a git repo.
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
fork this repository into your github organisation.
edit
organisation.mdwith your team's identity, projects, decisions, and preferences.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.
2. run with npx (recommended)
export GITHUB_TOKEN=ghp_your_token_here
export GITHUB_OWNER=your-github-username-or-org
export GITHUB_REPO=organisation.md
npx @shashank-sn/organisation-mdthat'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-mdthe 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.ts4. 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 the full |
| read a specific section by heading (e.g., "team", "decisions") |
| propose an update to a section — creates a pull request |
| search across |
| propose a change to any file in the repo — creates a pull request |
| list all files in the |
| import a txt, md, or docx file into the knowledge base |
| add information via natural language — auto-detects the section |
| remove information matching a description |
| check git-based roles and codeowners |
| check if you can add/delete/approve/merge |
| update |
| auto-detect the area and file a github issue |
| 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.mdconfiguration
copy .env.example to .env and fill in your values:
cp .env.example .envvariable | required | default | description |
| yes | — | github personal access token with |
| yes | — | github username or organisation that owns the repo |
| yes | — | repository name (e.g., |
| no |
| transport mode — |
| no |
| port for sse transport (only used when |
customisation
edit
organisation.md— replace the template content with your team's actual identity, projects, and decisions.add
context/files — create additional markdown files for deeper context (architecture docs, runbooks, etc.).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 locallylicense
mit — fork it, use it, ship it. see license.
Available Tools
12 toolsadd_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.
| Name | Required | Description | Default |
|---|---|---|---|
| info | Yes | the information to add, in natural language (e.g., 'our new project is called veridian, led by alice, focused on data pipelines') | |
| source | No | optional source reference (e.g., 'meeting notes 2025-06-20', 'slack thread') | |
| section | No | specific section to add to (auto-detected if omitted) |
TDQS
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.
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.
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.
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.
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.
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_permissionsARead-only
check if the current user can perform a specific action (add, delete, approve, merge).
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | the action to check | |
| path | No | optional file path to check permissions against codeowners pattern |
TDQS
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.
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.
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.
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.
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.
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_rolesARead-only
check who has what permissions on this repo. reads the codeowners file and current collaborator permissions.
| Name | Required | Description | Default |
|---|---|---|---|
| user | No | check permissions for a specific github username |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| pattern | Yes | path pattern (e.g., 'organisation.md', 'CONTEXT/', '*.md') | |
| owners | Yes | github usernames or team names, space-separated (e.g., '@alice @bob' or '@org/team') | |
| message | No | description of why this ownership is being added/changed |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| fileName | Yes | file name (e.g., 'onboarding.md', 'runbook.txt', 'spec.docx') | |
| content | Yes | full text content of the file (plain text for txt/md, base64-encoded for docx) | |
| fileType | Yes | file type — determines how content is processed | |
| section | No | which organisation.md section to link from (auto-detected from filename if omitted) | |
| message | No | brief description of what's being imported |
TDQS
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.
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.
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.
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.
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.
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_filesBRead-only
List all files in the CONTEXT/ directory of the repo.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | File path relative to repo root (e.g., 'CONTEXT/projects.md') | |
| content | Yes | New content for the file | |
| message | Yes | Commit message describing the change |
TDQS
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.
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.
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.
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.
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.
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_orgARead-only
Read the full organisation.md file from the GitHub repo.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_sectionARead-only
Read a specific section from organisation.md by heading name.
| Name | Required | Description | Default |
|---|---|---|---|
| section | Yes | The section heading to read (e.g., 'Team', 'Identity') |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | description of what to remove (e.g., 'remove the project veridian entry', 'delete alice from team') | |
| section | No | limit removal to a specific section |
TDQS
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.
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.
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.
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.
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.
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_contextARead-only
Search across organisation.md and CONTEXT/ files for matching text.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search term to find across context files |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| section | Yes | The section heading to update | |
| content | Yes | The new content for this section | |
| message | Yes | A brief description of what changed and why |
TDQS
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.
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.
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.
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.
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.
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.
12 tool updates
v0.1.0- First observed
add_info - First observed
check_permissions - First observed
check_roles - First observed
configure_codeowners - First observed
import_file - First observed
list_context_files - First observed
propose_change - First observed
read_org - First observed
read_section - First observed
remove_info - First observed
search_context - First observed
update_section
TDQS
Scored across 12 tools
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.
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.
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.
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
Related MCP Connectors
Git-backed platform for skills, tools, and context for AI agents
Your company's brain for AI agents. Cited, permission-aware knowledge across every system.
Shared, permission-aware company context for AI agents, with provenance, approvals and audit.
Intelligent context infrastructure for AI teams: knowledge graph, sessions, tasks, documents.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to search and retrieve context from GitHub issues, pull requests, releases, and documentation using hybrid semantic search and time-ordered activity scans.108 npmApache 2.0
- FlicenseBqualityDmaintenanceProvides AI coding agents with structured Git repository context including project state, code structure, activity, and risk analysis without modifying or uploading code.53-
- AlicenseNot gradedqualityAmaintenanceIndexes GitHub repositories and provides living documentation context to coding agents, enabling them to ground work in actual repository conventions and propose doc updates.15 npm2MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to run automated daily code reviews, retrieve Markdown reports, and curate a project knowledge base across any Git repository.AGPL 3.0