COS-MCP
Integrates with GitHub to enrich organizational knowledge graph with repository metadata, contributor analysis, commit/PR history, and ownership risk analysis.
Click on "Install 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., "@COS-MCPanalyze knowledge risk for the frontend team"
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.
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.jsonModule Structure
Module | Path | Description |
App |
| Root module, imports all feature modules |
KnowledgeGraph |
| Core module — resources, tools, prompts, knowledge base |
Risk |
| Bus factor and knowledge concentration analysis |
Transition |
| Transition plans, successor recommendations, onboarding |
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 .envVariable | Required | Default | Description |
| No |
| Environment ( |
| No |
| Port the MCP server listens on |
| 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 startWidgets (optional)
# Dev server for widgets
npm run widgets:dev
# Build widgets for production (static export)
npm run widgets:buildBuild Instructions
# TypeScript compilation
npm run build
# Build output goes to ./dist/
# Entry point: ./dist/index.jsGitHub Integration
COS-MCP integrates with the GitHub REST API to enrich the organizational knowledge graph with live repository data.
GitHub Tools
Tool | Description |
| Fetch repository metadata, contributors, commits, PRs, and languages |
| Calculate bus factor, contribution percentages, ownership risk |
| Merge GitHub commit/PR/ownership data into an employee profile |
GitHub Resources
URI | Description |
| Repository metadata, contributors, commits, PRs, languages |
| Contributor list with commit counts |
| Recent commit history |
Setup
export GITHUB_TOKEN=ghp_your_token_hereDemo Workflow
1. Explore the Organization
GET org://employees
GET org://teams
GET org://teams/Payments
GET org://employees/emp_0012. 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 |
| KnowledgeGraph | Build a complete ownership sub-graph for an employee |
|
| KnowledgeGraph | Search for domain experts by skills, system ownership, GitHub | — |
| KnowledgeGraph | Surface non-obvious responsibilities and hidden dependencies | — |
| KnowledgeGraph | Natural language query of ADRs, meetings, docs | — |
| Risk | Bus factor, sole owners, undocumented systems per team |
|
| Risk | Bus factor for a specific team | — |
| Transition | Composed transition plan (ownership + risk + successor) | — |
| Transition | Score and rank potential successors | — |
| Transition | Structured learning path for new hires | — |
| GitHub | Fetch repository metadata, contributors, commits, PRs |
|
| GitHub | Bus factor, contribution %, ownership risk |
|
| GitHub | Merge GitHub data into employee profile | — |
MCP Resources
URI | Module | Description |
| KnowledgeGraph | All employees with roles, teams, skills |
| KnowledgeGraph | Employee details with projects, systems, relationships |
| KnowledgeGraph | All teams with member counts, bus factor, health |
| KnowledgeGraph | Team breakdown with members, risk, projects, systems |
| KnowledgeGraph | All systems with ownership, documentation status |
| KnowledgeGraph | All projects with ownership, contributors, systems |
| KnowledgeGraph | Full knowledge graph (nodes + edges) |
| GitHub | Repository metadata, contributors, commits, PRs, languages |
| GitHub | Contributor list with commit counts |
| GitHub | Recent commit history |
MCP Prompts
Prompt | Module | Description |
| KnowledgeGraph | KT summary for departing employee |
| KnowledgeGraph | Complete transition report with risk, readiness, timeline |
| KnowledgeGraph | Org-wide or team health assessment with RAG status |
| KnowledgeGraph | Customer relationship handover document |
Widgets
Widget | Route | Bound Tool |
Organizational Health Dashboard |
|
|
Employee Ownership Graph |
|
|
GitHub Repositories |
|
|
Top Contributors |
|
|
Repository Bus Factor |
|
|
Commit Activity |
|
|
Ownership Percentage |
|
|
Critical Repositories |
|
|
Deployment
Production Build
npm run buildRun with PM2 (recommended)
npm install -g pm2
pm2 start dist/index.js --name cos-mcpDocker (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_tokenExample 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 toolsanalyze_knowledge_riskARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | Scope of analysis: "team" for one team, "department" for related teams, "organization" for all teams | organization |
| teamId | No | Filter analysis to a specific team ID |
TDQS
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.
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.
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.
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.
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.
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_ownershipARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | The GitHub repository name | |
| owner | Yes | The GitHub repository owner |
TDQS
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.
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.
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.
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.
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.
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_graphARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| employeeId | Yes | The employee ID to build the ownership graph for |
TDQS
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.
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.
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.
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.
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.
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_factorARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| teamId | Yes | The team ID to calculate bus factor for |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| roleId | Yes | The role or position the new employee is filling | |
| newEmployeeId | Yes | The employee ID of the new hire being onboarded |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | The GitHub repository name | |
| owner | Yes | The GitHub repository owner | |
| employeeName | Yes | The employee name to look up in the organization | |
| githubUsername | Yes | The employee's GitHub username |
TDQS
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.
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.
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.
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.
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.
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_expertsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain to search for experts in (e.g. "payments", "kubernetes", "react", "fraud") |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lastDay | No | The employee's last day (ISO date string) | |
| successorId | No | The employee ID of the planned successor, if already identified | |
| departingEmployeeId | Yes | The employee ID who is departing or transitioning |
TDQS
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.
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.
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.
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.
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.
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.
query_organizational_knowledgeARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | ||
| question | Yes | A 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
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.
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.
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.
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.
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.
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_successorARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| roleId | Yes | The role/position ID to find a successor for | |
| departingEmployeeId | Yes | The employee ID who is departing |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | The GitHub repository name | |
| owner | Yes | The GitHub repository owner (user or organization) |
TDQS
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.
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.
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.
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.
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.
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.
12 tool updates
v1.0.0- First observed
analyze_knowledge_risk - First observed
analyze_repository_ownership - First observed
build_ownership_graph - First observed
calculate_bus_factor - First observed
create_onboarding_path - First observed
enrich_employee_profile - First observed
find_domain_experts - First observed
generate_transition_plan - First observed
identify_hidden_dependencies - First observed
query_organizational_knowledge - First observed
recommend_successor - First observed
sync_github_repository
TDQS
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.
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.
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.
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
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
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
- MaplithOAuthcom.maplith
Data-ontology maps of your business systems, served to AI agents over MCP.
The Cortex MCP server provides read-only access to real-time engineering context from the Cortex developer portal, allowing AI coding assistants to answer natural language questions about your organization's catalog (microservices, libraries, domains, teams, infrastructure), scorecards (engineering standards and best practices), initiatives (goals and deadlines), and Engineering Intelligence metrics. It includes tools for querying documentation, tracking personal entities, and accessing AI-assisted insights across the entire Cortex ecosystem.
Your memory, everywhere AI goes. Build knowledge once, access it via MCP anywhere.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that builds a knowledge graph from code and text documents, enabling Q\&A and implementation planning via tools like graph_create, graph_plan, and graph_query.7MIT
- AlicenseNot gradedqualityAmaintenanceAn MCP server that provides a shared graph of an organization's projects, processes, areas, and principles, enabling consistent context for tools and AI agents.2Apache 2.0
- AlicenseNot gradedqualityBmaintenanceMCP server that connects AI agents to a shared organizational knowledge base, allowing them to query company-specific context like pricing, team, and strategy.MIT
- AlicenseNot gradedqualityAmaintenanceMCP server that enables AI agents to search, fetch, and analyze a self-maintaining markdown knowledge base with provenance, drift detection, and canonical definitions.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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