Skip to main content
Glama
adithya-1010010

COS-MCP

COS-MCP

Continuity OS — The Operating System for Organizational Continuity

COS-MCP is an MCP (Model Context Protocol) server that provides AI-powered organizational continuity planning. It maintains a knowledge graph of employees, systems, projects, and relationships, and exposes tools, resources, and prompts for knowledge graph visualization, risk analysis, employee transition planning, and organizational knowledge base queries.

Built with NitroStack@nitrostack/core for the MCP server and @nitrostack/widgets for UI widgets.


Features

  • Knowledge Graph — Complete graph of employees, systems, projects, decisions, customers, and their relationships

  • Risk Analysis — Bus factor calculation, knowledge concentration detection, sole-owner identification

  • Transition Planning — Composed transition plans, successor scoring, onboarding path generation

  • GitHub Integration — Repository metadata, contributor analysis, commit/PR history, ownership risk

  • Organizational Knowledge Base — Decision records (ADRs), meeting summaries, documentation snippets with natural language querying

  • NitroStack Widgets — Pre-built dashboards and visualizations (Health Dashboard, Ownership Graph, GitHub insights)

  • MCP Prompts — Structured AI prompts for knowledge transfer summaries, transition reports, health checks, customer handovers


Related MCP server: portuni

Architecture

cos-mcp/
├── src/
│   ├── index.ts                          # Entry point — boots MCP server
│   ├── app.module.ts                     # Root @McpApp + @Module
│   ├── models/index.ts                   # Zod schemas + TypeScript types
│   ├── services/
│   │   ├── mock-data.service.ts          # In-memory data store (employees, projects, systems, graph)
│   │   └── github.service.ts             # GitHub REST API client with caching
│   ├── modules/
│   │   ├── knowledge-graph/              # Org resources, graph tools, knowledge base, prompts
│   │   │   ├── knowledge-graph.module.ts
│   │   │   ├── knowledge-graph.tools.ts   # build_ownership_graph, find_domain_experts, etc.
│   │   │   ├── knowledge-graph.resources.ts # org://employees, org://teams, org://systems, etc.
│   │   │   ├── knowledge-graph.prompts.ts   # knowledge_transfer_summary, transition_report, etc.
│   │   │   └── knowledge-base.ts          # Static ADRs, meeting summaries, docs
│   │   ├── risk/                         # Risk analysis tools
│   │   │   ├── risk.module.ts
│   │   │   └── risk.tools.ts              # analyze_knowledge_risk, calculate_bus_factor
│   │   ├── transition/                   # Transition planning tools
│   │   │   ├── transition.module.ts
│   │   │   └── transition.tools.ts        # generate_transition_plan, recommend_successor, etc.
│   │   └── github/                       # GitHub integration
│   │       ├── github.module.ts
│   │       ├── github.tools.ts            # sync_github_repository, analyze_repository_ownership, etc.
│   │       └── github.resources.ts        # github://repo, github://contributors, github://commits
│   └── widgets/                          # NitroStack widget pages (Next.js static export)
│       ├── app/                          # Page components
│       ├── widget-manifest.json          # Widget registry
│       ├── next.config.mjs
│       └── package.json
└── package.json

Module Structure

Module

Path

Description

App

src/app.module.ts

Root module, imports all feature modules

KnowledgeGraph

src/modules/knowledge-graph/

Core module — resources, tools, prompts, knowledge base

Risk

src/modules/risk/

Bus factor and knowledge concentration analysis

Transition

src/modules/transition/

Transition plans, successor recommendations, onboarding

GitHub

src/modules/github/

GitHub REST API integration


Installation

# Clone the repository
git clone https://github.com/your-org/cos-mcp.git
cd cos-mcp

# Install dependencies
npm install

# (Optional) Install widget dependencies
cd src/widgets && npm install && cd ../..

Environment Variables

Copy .env.example to .env:

cp .env.example .env

Variable

Required

Default

Description

NODE_ENV

No

development

Environment (development, production, test)

PORT

No

3000

Port the MCP server listens on

GITHUB_TOKEN

No

GitHub personal access token (5,000 req/hr vs 60 req/hr unauthenticated)


Running Locally

# Start the MCP server in dev mode (with hot reload via NitroStudio)
npm run dev

# Or build and run
npm run build
npm start

Widgets (optional)

# Dev server for widgets
npm run widgets:dev

# Build widgets for production (static export)
npm run widgets:build

Build Instructions

# TypeScript compilation
npm run build

# Build output goes to ./dist/
# Entry point: ./dist/index.js

GitHub Integration

COS-MCP integrates with the GitHub REST API to enrich the organizational knowledge graph with live repository data.

GitHub Tools

Tool

Description

sync_github_repository

Fetch repository metadata, contributors, commits, PRs, and languages

analyze_repository_ownership

Calculate bus factor, contribution percentages, ownership risk

enrich_employee_profile

Merge GitHub commit/PR/ownership data into an employee profile

GitHub Resources

URI

Description

github://repo/{owner}/{repo}

Repository metadata, contributors, commits, PRs, languages

github://contributors/{owner}/{repo}

Contributor list with commit counts

github://commits/{owner}/{repo}

Recent commit history

Setup

export GITHUB_TOKEN=ghp_your_token_here

Demo Workflow

1. Explore the Organization

GET org://employees
GET org://teams
GET org://teams/Payments
GET org://employees/emp_001

2. Build Ownership Graph

Tool: build_ownership_graph
Input: { employeeId: "emp_001" }

3. Analyze Knowledge Risk

Tool: analyze_knowledge_risk
Input: { scope: "organization" }

4. Find Domain Experts

Tool: find_domain_experts
Input: { domain: "payments" }

5. Identify Hidden Dependencies

Tool: identify_hidden_dependencies
Input: { employeeId: "emp_001" }

6. Query Organizational Knowledge

Tool: query_organizational_knowledge
Input: { question: "Why did Alice choose Kafka over RabbitMQ?" }

7. Recommend Successor

Tool: recommend_successor
Input: { roleId: "Senior Engineer", departingEmployeeId: "emp_001" }

8. Generate Transition Plan

Tool: generate_transition_plan
Input: { departingEmployeeId: "emp_001", successorId: "emp_013" }

9. Use AI Prompts

Prompt: knowledge_transfer_summary
Arguments: { employeeId: "emp_001", format: "detailed" }

Prompt: role_transition_report
Arguments: { departingId: "emp_001", successorId: "emp_013" }

Prompt: organizational_health_check
Arguments: { scope: "team", teamId: "Payments" }

10. Create Onboarding Path

Tool: create_onboarding_path
Input: { newEmployeeId: "emp_013", roleId: "Senior Engineer" }

MCP Tools

Tool

Module

Description

Widget

build_ownership_graph

KnowledgeGraph

Build a complete ownership sub-graph for an employee

ownership-graph

find_domain_experts

KnowledgeGraph

Search for domain experts by skills, system ownership, GitHub

identify_hidden_dependencies

KnowledgeGraph

Surface non-obvious responsibilities and hidden dependencies

query_organizational_knowledge

KnowledgeGraph

Natural language query of ADRs, meetings, docs

analyze_knowledge_risk

Risk

Bus factor, sole owners, undocumented systems per team

health-dashboard

calculate_bus_factor

Risk

Bus factor for a specific team

generate_transition_plan

Transition

Composed transition plan (ownership + risk + successor)

recommend_successor

Transition

Score and rank potential successors

create_onboarding_path

Transition

Structured learning path for new hires

sync_github_repository

GitHub

Fetch repository metadata, contributors, commits, PRs

github-repositories, top-contributors, commit-activity

analyze_repository_ownership

GitHub

Bus factor, contribution %, ownership risk

repository-bus-factor, ownership-percentage, critical-repositories

enrich_employee_profile

GitHub

Merge GitHub data into employee profile


MCP Resources

URI

Module

Description

org://employees

KnowledgeGraph

All employees with roles, teams, skills

org://employees/{employeeId}

KnowledgeGraph

Employee details with projects, systems, relationships

org://teams

KnowledgeGraph

All teams with member counts, bus factor, health

org://teams/{teamId}

KnowledgeGraph

Team breakdown with members, risk, projects, systems

org://systems

KnowledgeGraph

All systems with ownership, documentation status

org://projects

KnowledgeGraph

All projects with ownership, contributors, systems

org://knowledge-graph

KnowledgeGraph

Full knowledge graph (nodes + edges)

github://repo/{owner}/{repo}

GitHub

Repository metadata, contributors, commits, PRs, languages

github://contributors/{owner}/{repo}

GitHub

Contributor list with commit counts

github://commits/{owner}/{repo}

GitHub

Recent commit history


MCP Prompts

Prompt

Module

Description

knowledge_transfer_summary

KnowledgeGraph

KT summary for departing employee

role_transition_report

KnowledgeGraph

Complete transition report with risk, readiness, timeline

organizational_health_check

KnowledgeGraph

Org-wide or team health assessment with RAG status

customer_handover_summary

KnowledgeGraph

Customer relationship handover document


Widgets

Widget

Route

Bound Tool

Organizational Health Dashboard

/health-dashboard

analyze_knowledge_risk

Employee Ownership Graph

/ownership-graph

build_ownership_graph

GitHub Repositories

/github-repositories

sync_github_repository

Top Contributors

/top-contributors

sync_github_repository

Repository Bus Factor

/repository-bus-factor

analyze_repository_ownership

Commit Activity

/commit-activity

sync_github_repository

Ownership Percentage

/ownership-percentage

analyze_repository_ownership

Critical Repositories

/critical-repositories

analyze_repository_ownership


Deployment

Production Build

npm run build
npm install -g pm2
pm2 start dist/index.js --name cos-mcp

Docker (example Dockerfile)

FROM node:22-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY dist/ ./dist/
CMD ["npm", "start"]

Environment Variables

Ensure these are set in your production environment:

NODE_ENV=production
PORT=3000
GITHUB_TOKEN=ghp_your_token

Example Usage

# Query all employees
curl -X POST http://localhost:3000/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"resources/read","params":{"uri":"org://employees"},"id":1}'

# Build ownership graph
curl -X POST http://localhost:3000/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"build_ownership_graph","arguments":{"employeeId":"emp_001"}},"id":2}'

# Sync GitHub repository
curl -X POST http://localhost:3000/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"sync_github_repository","arguments":{"owner":"nitrocloudofficial","repo":"nitrostack"}},"id":3}'

Organization Data

  • 3 teams: Payments (6 members), Platform (5 members), Growth (3 members)

  • 8 projects: Payment Gateway v3, Platform Migration to EKS, User Onboarding Redesign, Real-Time Fraud Detection, Data Lake Foundation, API Rate Limiter, A/B Testing Platform, PCI DSS Compliance Audit

  • 9 systems: Payment Processor, Ledger Service, API Gateway, Event Bus, User Service, Internal Admin Dashboard, Payment Reconciliation Service, SAP Integration, Vendor X Process

  • 12 decision records (ADR-001 through ADR-012)

  • 5 meeting summaries

  • 8 documentation snippets


License

MIT

Available Tools

12 tools
analyze_knowledge_riskA
Read-only

Analyze organizational knowledge risk by calculating bus factor per team. Identifies sole owners of critical systems, undocumented services, and single points of failure. Use this when you need to assess continuity risk, identify knowledge silos, or determine which teams are most vulnerable to employee departure.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoScope of analysis: "team" for one team, "department" for related teams, "organization" for all teamsorganization
teamIdNoFilter analysis to a specific team ID

TDQS

A4/5.0
Behavior3/5

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

The readOnlyHint annotation already communicates that this is a safe read operation. The description adds useful context about the risk indicators it identifies, but does not disclose output format, return structure, or data dependencies. This is adequate given annotations, but not rich.

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 two sentences, front-loaded with the main verb and resource. It has no redundant phrases and every sentence adds substantive information, making it highly concise and well-structured.

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?

The description effectively covers what the tool does and when to use it. With no output schema, it could be improved by stating the return format, but the simple parameter set, optional inputs, and read-only nature make it sufficiently complete for an agent.

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 parameters are well-documented and the baseline is 3. The description does not add much beyond the schema, though it implies team-level analysis; it does not explain interaction between scope and teamId, but the schema already clarifies this.

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 defines the tool's purpose: analyzing organizational knowledge risk by computing bus factor per team and identifying specific risk indicators like sole owners and single points of failure. This differentiates it from sibling tools such as 'calculate_bus_factor' by positioning a broader risk analysis scope.

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 provides explicit use cases: assessing continuity risk, identifying knowledge silos, and determining team vulnerability to departure. However, it does not include exclusions or mention when to prefer alternative tools, so it falls short of full guidance.

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

analyze_repository_ownershipA
Read-only

Analyze a GitHub repository's contributor data to calculate bus factor, knowledge concentration, contribution percentages, and ownership risk. Provides recommendations for reducing single-contributor risk.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesThe GitHub repository name
ownerYesThe GitHub repository owner

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, which is consistent with 'Analyze' and 'Provides recommendations'. The description adds valuable context about the types of analysis performed (bus factor, knowledge concentration, etc.) and the fact that it outputs recommendations, which goes beyond the annotation's safety info. It does not mention data limitations or rate limits, but within the read-only scope it 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.

Conciseness5/5

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

Two sentences, front-loaded with the main action, and every word contributes. It is concise without sacrificing key output details.

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?

There is no output schema, so the description carries the duty of conveying return values. It lists all key analysis outputs and mentions recommendations, giving a complete picture for a 2-parameter tool with read-only annotations. No gaps in understanding of what to expect.

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% (both owner and repo have clear descriptions). The description does not add parameter-specific details, but the schema already provides full meaning. Baseline 3 is appropriate because the schema carries the heavy lifting.

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 uses a specific verb ('Analyze') and resource ('a GitHub repository's contributor data') and enumerates concrete outputs (bus factor, knowledge concentration, contribution percentages, ownership risk). It is clear and detailed, but does not explicitly distinguish itself from sibling tools like calculate_bus_factor or analyze_knowledge_risk, which is the only difference from a perfect score.

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 analyzing repository ownership risk and providing recommendations, but gives no explicit guidance on when to choose this tool over alternatives. Sibling tools such as calculate_bus_factor and analyze_knowledge_risk suggest overlapping functionality, and the description does not address trade-offs or scenarios where this tool is preferable.

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

build_ownership_graphA
Read-only

Build a complete ownership sub-graph for a given employee. Traverses all relationships to surface projects owned or contributed to, systems where they are sole or primary owner, documents and processes they run, people who depend on them, customers they manage, and architectural decisions they made. Use this to visualize an employee's full organizational footprint and identify knowledge concentration risks.

ParametersJSON Schema
NameRequiredDescriptionDefault
employeeIdYesThe employee ID to build the ownership graph for

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the safety profile is known. The description adds valuable scope information: 'Traverses all relationships' and 'complete ownership sub-graph,' implying an exhaustive read operation. It does not disclose performance implications, but the added scope context goes beyond what annotations provide.

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 two sentences, highly informative, and front-loaded with the core action. Every clause adds detail about the tool's scope and output types, with zero waste or redundancy.

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 single-parameter, read-only graph-building tool with no output schema, the description explains the full scope (what relationships are traversed) and the intended use case. It does not describe the output format, but that is not required given the absence of an output schema and the graph nature of the result. This is sufficiently complete for an agent to decide when to invoke it.

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 schema description covers 100% of the parameter (employeeId, 'The employee ID to build the ownership graph for'). The tool description does not add further parameter-specific details, so the schema carries the burden. Baseline 3 is appropriate given complete schema coverage.

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 uses a specific verb ('Build') and resource ('ownership sub-graph for a given employee'), clearly distinguishing it from sibling tools like analyze_repository_ownership (which focuses on repositories) and find_domain_experts (which finds experts). It states exactly what relationships are surfaced, making the tool's purpose unambiguous.

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 provides a clear use case: 'Use this to visualize an employee's full organizational footprint and identify knowledge concentration risks.' This implicitly sets it apart from more focused tools, though it does not explicitly name alternatives or state when not to use it. The context is strong but lacks explicit exclusions.

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

calculate_bus_factorA
Read-only

Calculate the bus factor for a specific team. The bus factor is the minimum number of team members whose simultaneous departure would halt critical systems. Use this when evaluating team resilience, planning for personnel changes, or preparing for knowledge transfer.

ParametersJSON Schema
NameRequiredDescriptionDefault
teamIdYesThe team ID to calculate bus factor for

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the agent knows this is a safe read operation. The description adds conceptual context by defining bus factor, which is helpful, but it does not disclose behavior such as output format, edge cases, or what data is accessed. Given annotations cover the safety profile, a 3 is appropriate.

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 two sentences, front-loaded with the action and key concept. Every sentence provides needed context. No 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?

The tool has a single parameter and clear read-only annotations, so complexity is low. However, there is no output schema, and the description does not mention what the tool returns (e.g., a number, a report, a list). For a calculation tool, it would be helpful to state the output type. Thus it is complete enough for a simple tool but not fully self-sufficient.

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 teamId fully documented in the schema. The description only refers to 'a specific team' which adds no new meaning beyond the schema. Thus the baseline 3 applies; the description adds no extra parameter semantics.

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 opens with a specific verb+resource: 'Calculate the bus factor for a specific team.' It clearly defines what the tool does and provides a concrete metric (minimum number of team members). This clearly distinguishes it from sibling tools like analyze_repository_ownership or identify_hidden_dependencies.

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 explicitly states when to use this tool: 'when evaluating team resilience, planning for personnel changes, or preparing for knowledge transfer.' This gives clear usage context, though it does not mention alternatives or exclusions, so it misses the top score.

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

create_onboarding_pathA

Generate a structured learning path for a new employee based on organizational knowledge. Maps out what systems to learn first (in dependency order), who to meet, what documentation to read, and milestones to achieve each week. Use this to accelerate new hire ramp-up using the organization's knowledge graph.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleIdYesThe role or position the new employee is filling
newEmployeeIdYesThe employee ID of the new hire being onboarded

TDQS

A4/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false, and the description's 'Generate' action aligns with a non-read-only operation. The description adds context about dependency ordering and milestones, but it does not disclose side effects, permissions, or whether the plan is persisted. With annotations present, the bar is lower, and the description adds some but not rich behavioral context.

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 concise—two sentences with clear front-loading of the main verb and purpose. It efficiently lists what the plan includes without unnecessary repetition or filler.

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 2-parameter tool with no output schema, the description adequately explains the output components (systems, people, docs, milestones). It could be slightly richer by specifying whether the plan is generated on-the-fly or stored, but it is sufficiently complete for selection and invocation.

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 both parameters. The description adds no additional meaning to the parameters themselves, but it does contextualize how they are used (e.g., role-based and employee-specific planning). This meets the baseline for high schema coverage.

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 with a specific verb ('Generate') and a specific resource ('structured learning path'). It distinguishes from sibling tools by focusing on onboarding new employees based on organizational knowledge, while siblings cover ownership, dependencies, and transitions.

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?

It explicitly says 'Use this to accelerate new hire ramp-up using the organization's knowledge graph,' providing a clear usage context. However, it does not explicitly mention when not to use it or differentiate from closely related tools like generate_transition_plan, though the onboarding focus is distinct enough.

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

enrich_employee_profileA

Enrich an existing employee profile with GitHub activity data. Merges commits, pull requests, last activity, and repository ownership into the employee's organizational profile.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesThe GitHub repository name
ownerYesThe GitHub repository owner
employeeNameYesThe employee name to look up in the organization
githubUsernameYesThe employee's GitHub username

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already indicate this is a write operation (readOnlyHint=false), and the description adds context by specifying the merged data types. It does not disclose potential side effects, prerequisites (e.g., employee existence), or edge cases, so it offers only partial transparency beyond the annotations.

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 sentences, front-loaded with the core purpose. Every phrase conveys meaningful information without redundancy.

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 covers the primary behavior but omits return values (no output schema) and edge cases like missing employees or duplicate merges. Given the simplicity of the tool, it is adequate but not comprehensive.

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 descriptive parameter definitions, so the baseline is 3. The description does not add further parameter-level detail; the mention of 'repository ownership' alludes to owner/repo but does not clarify their specific roles 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 uses a specific verb 'Enrich' and clearly identifies the resource (employee profile) and the data merged (commits, pull requests, last activity, repository ownership). This distinguishes it from sibling tools like analyze_repository_ownership or build_ownership_graph, which focus on analysis rather than profile enrichment.

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 conveys clear context—this tool is for adding GitHub activity data to an existing employee profile—and even lists the specific data types merged. However, it does not explicitly state when not to use it or mention alternatives like sync_github_repository, so it falls short of a 5.

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

find_domain_expertsA
Read-only

Search through employee skills, system ownership, and project involvement to find domain experts. Scores and ranks employees by relevance to a given domain (e.g. "payments", "kubernetes", "react"). Use this when you need to identify who to consult for a specific technical or business domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesThe domain to search for experts in (e.g. "payments", "kubernetes", "react", "fraud")

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, which the description aligns with. The description adds behavioral context by stating it scores and ranks employees, and mentions the data sources searched. This goes beyond the annotation without contradicting it.

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 sentences with no filler. The first sentence states the action and data sources, the second gives usage context and examples. Highly efficient and front-loaded.

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?

With a single well-documented parameter, read-only annotation, and no output schema, the description fully covers what the tool does, when to use it, and what to expect (ranked experts). No significant gaps remain.

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 'domain' parameter. The description provides examples and clarifies the meaning of 'domain', but this is incremental value; the schema already fully documents the parameter, so baseline 3 is appropriate.

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?

Description clearly states the tool searches through skills, ownership, and involvement to find and rank domain experts. The verb 'search' and outcome 'find domain experts' is specific and distinguishes it from sibling tools that analyze ownership, dependencies, or knowledge risk.

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?

Provides explicit use case: 'Use this when you need to identify who to consult for a specific technical or business domain.' This gives clear context but does not explicitly mention alternatives or when not to use it, so it misses the top score.

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

generate_transition_planA

Generate a comprehensive transition plan for a departing employee. Analyzes the employee's full ownership graph (systems, projects, processes, decisions, dependents), prioritizes handovers by criticality, and produces a phased timeline with task assignments. Use this when an employee is leaving or changing roles to ensure continuity.

ParametersJSON Schema
NameRequiredDescriptionDefault
lastDayNoThe employee's last day (ISO date string)
successorIdNoThe employee ID of the planned successor, if already identified
departingEmployeeIdYesThe employee ID who is departing or transitioning

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=false and openWorldHint=false, so the description adds significant context about what the tool does: analyzes ownership graph, prioritizes handovers, produces a phased timeline. It doesn't mention side effects or persistence, but the non-read-only annotation is not contradicted, and the description explains the behavioral process well.

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?

Three sentences, each earning its place: purpose, process, and usage guidance. Front-loaded with the main verb and resource, no filler or redundant details.

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?

Given no output schema, the description covers what the plan includes (phased timeline, task assignments) and the input scenario well. It's complete enough for an agent to know when to invoke and roughly what to expect, though it could specify the return format in more detail.

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 schema already provides 100% coverage with descriptions for all three parameters (departingEmployeeId, lastDay, successorId). The description reinforces context (departing employee, successor) but doesn't add additional details beyond the schema, so the baseline 3 is appropriate.

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 opens with a specific verb and resource: 'Generate a comprehensive transition plan for a departing employee.' It clearly distinguishes this from sibling tools like recommend_successor or create_onboarding_path by focusing on the full ownership graph analysis and phased timeline.

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?

It explicitly states 'Use this when an employee is leaving or changing roles to ensure continuity,' giving a clear when-to-use. It doesn't mention when-not-to-use or name alternatives directly, but the context is clear enough for most agents.

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

identify_hidden_dependenciesA
Read-only

Identify non-obvious responsibilities and hidden dependencies for an employee. Uncovers recurring meetings they likely run, approval chains they are part of, cross-team coordination duties, and implicit knowledge that would be lost if they departed. Use this during continuity planning or before role transitions.

ParametersJSON Schema
NameRequiredDescriptionDefault
employeeIdYesThe employee ID to analyze for hidden dependencies

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so safety is known. The description adds transparency by detailing what behavioral analysis the tool performs: 'recurring meetings they likely run, approval chains they are part of, cross-team coordination duties, and implicit knowledge that would be lost if they departed.' This goes beyond the annotation to describe the analytical output.

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 two sentences: the first defines the tool's purpose and scope, the second gives usage timing. Every sentence is informative and there is no redundant or filler content, making it highly concise and well-structured.

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?

The tool has a single parameter, no output schema, and moderate complexity. The description covers purpose, use case, and the categories of findings, which is sufficient for an analyst to decide to call it. It doesn't specify the exact return format, but that's not critical given the tool's nature and the simplicity of inputs.

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 the employeeId parameter described as 'The employee ID to analyze for hidden dependencies'. The description restates this simply as 'for an employee' but adds no new semantic detail beyond what the schema already provides, so baseline 3 is appropriate.

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 'Identify' and the resource 'non-obvious responsibilities and hidden dependencies for an employee', which is specific and distinct from sibling tools like analyze_knowledge_risk or calculate_bus_factor. It also enumerates concrete outputs (meetings, approval chains, cross-team duties, implicit knowledge), making the purpose unmistakable.

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 provides explicit use context: 'Use this during continuity planning or before role transitions.' This gives clear guidance on when to invoke the tool, though it does not explicitly mention when not to use it or name alternative sibling tools.

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

query_organizational_knowledgeA
Read-only

Search the organizational knowledge base for decisions, documentation, meeting outcomes, or technical rationale. Understands natural language questions about why certain technologies were chosen, how systems are designed, what was decided in meetings, and where documentation lives. Use this as the primary tool for answering "why" and "how" questions about the organization's technical history.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNo
questionYesA natural language question about organizational knowledge, e.g. "Why did we choose Kafka over RabbitMQ?" or "What was decided in the EKS migration architecture review?"

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safe, bounded nature is known. The description adds behavioral context by noting it 'Understands natural language questions' and enumerating content types (decisions, documentation, meeting outcomes, technical rationale), which helps the agent anticipate response relevance. No contradiction with annotations.

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 two sentences, front-loaded with the core action, and every word contributes. Examples are compressed and illustrative without redundancy.

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 tool with a nested context object and no output schema, the description covers the main search purpose and natural language capabilities. However, it omits any mention of the optional scoping parameters (context.aboutSystem, aboutProject, aboutEmployee), which are important for narrowing searches. The schema partially compensates, but the description could have been more 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?

Schema description coverage is 50%: the 'question' parameter is well-described with examples, but 'context' and its nested properties are not explained in the description. The description's examples clarify the question parameter but offer no guidance on scoping via context, leaving the agent partially reliant on 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 tool's purpose: 'Search the organizational knowledge base for decisions, documentation, meeting outcomes, or technical rationale.' It also provides specific examples of natural language questions and explicitly positions it as the primary tool for 'why' and 'how' questions, distinguishing it from sibling tools focused on ownership and dependency analysis.

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 gives clear context on when to use the tool: 'Use this as the primary tool for answering "why" and "how" questions about the organization's technical history.' It does not explicitly name alternative tools or exclusions, but the guidance is specific enough to guide appropriate use.

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

recommend_successorA
Read-only

Score and rank potential successors for a departing employee based on skill overlap, team proximity, existing system knowledge, and current capacity. Use this when you need to identify the best person to backfill or absorb responsibilities from a leaving team member.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleIdYesThe role/position ID to find a successor for
departingEmployeeIdYesThe employee ID who is departing

TDQS

A4/5.0
Behavior3/5

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

Annotations already mark the tool as read-only, and the description does not contradict that. It adds context about the ranking criteria but does not disclose additional behavioral traits such as response format or whether it considers all employees. With annotations covering safety, this is adequate but not rich.

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 two sentences, front-loaded with the verb and resource, and contains no filler or redundant information. Every sentence earns its place.

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?

The description covers purpose, usage, and ranking criteria. It lacks an explicit output format, but the phrase 'score and rank' implies a ranked list, and the tool is relatively simple with two well-documented parameters. This is largely 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?

Schema description coverage is 100%, and both parameters are clearly described (roleId and departingEmployeeId). The description adds no extra meaning beyond the schema, so the baseline score of 3 is appropriate.

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 score and rank potential successors for a departing employee based on specific criteria (skill overlap, team proximity, system knowledge, capacity). This is a specific verb+resource that distinguishes it from sibling tools like find_domain_experts or calculate_bus_factor.

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 explicitly says 'Use this when you need to identify the best person to backfill or absorb responsibilities,' providing clear context for when to use the tool. It does not name alternatives or exclusions, but the when-to-use guidance is direct and sufficient.

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

sync_github_repositoryA

Fetch and sync a GitHub repository's data including metadata, contributors, commits, pull requests, and languages. Stores the data in the knowledge graph for further analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesThe GitHub repository name
ownerYesThe GitHub repository owner (user or organization)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=false (write operation) and openWorldHint=false (closed world). The description adds valuable context by stating the data is stored in the knowledge graph, revealing the write target and purpose. No contradictions with annotations.

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 sentences, front-loaded with the main action, and every word contributes meaning. No filler or redundancy.

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?

The description tells what data is fetched and where it is stored, which is sufficient for a simple 2-parameter sync tool. It doesn't describe return values, but the storage side-effect implies the tool's effect rather than a rich output. Overall complete for its complexity.

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 both parameters (owner, repo) having descriptions. The tool description adds no additional meaning beyond the schema, so it relies entirely on the schema as expected.

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 uses specific verbs 'Fetch and sync' with a clear resource ('GitHub repository's data') and enumerates data types (metadata, contributors, commits, pull requests, languages). This clearly distinguishes it from sibling analysis tools.

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 implies a preparatory role with 'for further analysis', making the usage context clear. However, it doesn't explicitly exclude alternatives or state when not to use it, but the context is sufficient without being verbose.

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. Dates show when Glama detected each change.

  1. 12 tool updatesv1.0.0
    • First observedanalyze_knowledge_risk
    • First observedanalyze_repository_ownership
    • First observedbuild_ownership_graph
    • First observedcalculate_bus_factor
    • First observedcreate_onboarding_path
    • First observedenrich_employee_profile
    • First observedfind_domain_experts
    • First observedgenerate_transition_plan
    • First observedidentify_hidden_dependencies
    • First observedquery_organizational_knowledge
    • First observedrecommend_successor
    • First observedsync_github_repository

TDQS

A4.1/5.0
Disambiguation3/5

Several tools overlap around bus factor and ownership analysis. analyze_repository_ownership, analyze_knowledge_risk, and calculate_bus_factor all deal with bus factor at different scopes (repo, org, team), which could cause misselection. identify_hidden_dependencies and build_ownership_graph also have overlapping purposes in surfacing employee responsibilities, though they differ in focus on hidden vs. comprehensive dependencies.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (e.g., analyze_repository_ownership, calculate_bus_factor, generate_transition_plan). The verbs are distinct and descriptive, making the naming predictable and easy to navigate.

Tool Count5/5

12 tools is well-scoped for the domain of organizational knowledge, bus factor, and transition planning. Each tool serves a distinct functional need, from data ingestion (sync_github_repository, enrich_employee_profile) to analysis (bus factor, ownership graph) to actionable planning (transition plans, onboarding paths). No tool feels redundant or unnecessary.

Completeness4/5

The tool surface covers the core workflow of assessing continuity risk and planning transitions: identify risks (bus factor, hidden dependencies), analyze ownership, find experts, generate transition plans and onboarding paths. Minor gaps include lack of a direct tool to edit or remove organizational knowledge entries, but the existing tools provide sufficient coverage for the primary use case.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    An MCP server that provides a shared graph of an organization's projects, processes, areas, and principles, enabling consistent context for tools and AI agents.
    2
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server that connects AI agents to a shared organizational knowledge base, allowing them to query company-specific context like pricing, team, and strategy.
    MIT

Latest Blog Posts

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/adithya-1010010/COS-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server