Skip to main content
Glama
aumsuthar

aum-mcp-server

by aumsuthar

aum-mcp-server

A personal MCP server split into focused servers — each loads only the tools it needs, keeping Claude's context lean.

Server

Tools

aum-developer

Web/HTTP, file system, shell, GitHub, Ollama

aum-notes

Persistent notes, Word (.docx), PowerPoint (.pptx)

aum-communication

Gmail, Google Calendar, Google Contacts, iMessage

aum-canvas

Canvas LMS — courses, grades

aum-personal

Spotify

aum-slurm

SLURM job management via SSH (any HPC cluster)


Setup

1. Install dependencies

npm install

2. Configure environment

cp .env.example .env

Fill in .env with your API keys. Each section in .env.example explains where to generate them.

Google (Gmail + Calendar + Contacts) requires an OAuth flow — after filling in GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET, run:

node --env-file=.env scripts/google-auth.mjs

This prints a GOOGLE_REFRESH_TOKEN — paste it into .env. One token covers all three Google services.

3. Build

npm run build

4. Register with Claude

Add to ~/.mcp.json (create it if it doesn't exist). Replace /path/to/mcp-server with the absolute path to this repo:

{
  "mcpServers": {
    "aum-developer": {
      "command": "node",
      "args": [
        "--env-file=/path/to/mcp-server/.env",
        "/path/to/mcp-server/dist/developer.js"
      ]
    },
    "aum-notes": {
      "command": "node",
      "args": [
        "--env-file=/path/to/mcp-server/.env",
        "/path/to/mcp-server/dist/notes-server.js"
      ]
    },
    "aum-communication": {
      "command": "node",
      "args": [
        "--env-file=/path/to/mcp-server/.env",
        "/path/to/mcp-server/dist/communication.js"
      ]
    },
    "aum-canvas": {
      "command": "node",
      "args": [
        "--env-file=/path/to/mcp-server/.env",
        "/path/to/mcp-server/dist/canvas-server.js"
      ]
    },
    "aum-personal": {
      "command": "node",
      "args": [
        "--env-file=/path/to/mcp-server/.env",
        "/path/to/mcp-server/dist/personal.js"
      ]
    },
    "aum-slurm": {
      "command": "node",
      "args": [
        "--env-file=/path/to/mcp-server/.env",
        "/path/to/mcp-server/dist/slurm.js"
      ]
    }
  }
}

You can register only the servers you need — each one is independent.


Related MCP server: codex-dobby-mcp

Tool reference

Tool

Description

fetch_url

Fetch any URL (GET/POST/PUT/PATCH/DELETE)

http_status

Check HTTP status without downloading body

call_api

Call JSON APIs with automatic serialization

read_file

Read file contents

write_file

Write content to a file

list_directory

List files/dirs (optional recursive)

system_info

Hostname, platform, memory, architecture

current_datetime

Current date/time in any IANA timezone

run_command

Execute shell commands

get_env

Read environment variables

github_contributions

Contribution calendar and stats for the past N days

github_profile

Profile info — repos, followers, top starred repos

ollama_models

List installed Ollama models ranked by tool-use capability

ollama_chat

Agentic chat with best local model — routes to relevant tools automatically

Tool

Description

note_set

Save a persistent note by key

note_get

Retrieve a note by key

note_list

List all saved note keys

note_delete

Delete a note by key

word_read

Extract text from a .docx file

word_create

Create a .docx file from headings, paragraphs, and bullets

ppt_read

Extract slide text from a .pptx file

ppt_create

Create a .pptx file from a list of slides

Tool

Description

gmail_inbox

List recent Gmail inbox messages

gmail_search

Search Gmail by query

gmail_get_message

Read a full email message

gmail_send

Send an email

calendar_list

List available Google Calendars

calendar_events

List upcoming calendar events

calendar_today

Get today's events

calendar_create_event

Create a new calendar event

contacts_search

Search Google Contacts by name or email

contacts_get

Get full details for a specific contact

contacts_list

List all contacts

imessage_search

Search messages by contact or content

imessage_recent

Get most recent messages across all chats

imessage_chat

Get messages from a specific conversation

imessage_contacts

List all iMessage contacts with last message

imessage_send

Send an iMessage via Messages.app

Tool

Description

canvas_courses

Active courses with current grades and scores

Tool

Description

spotify_now_playing

Currently playing track

spotify_recent

10 most recently played tracks

spotify_top_artists

Top artists over the past ~6 months

Tool

Description

slurm_run

Run a shell command on the HPC cluster via SSH

slurm_jobs

List SLURM jobs in the queue

slurm_files

List files in a remote directory

slurm_read_file

Read a file from the HPC cluster

slurm_submit_job

Submit a SLURM batch job script

slurm_storage

Check disk quota and storage usage


Ollama (local LLM)

ollama_chat runs a fully local agentic loop — no cloud required.

Prerequisites: Ollama installed and running, with at least one model pulled.

ollama pull qwen2.5     # recommended — best tool use, fast
ollama pull llama3.2    # solid alternative
ollama serve            # start if not running as a service

ollama_chat automatically selects a focused subset of tools based on keywords in your prompt. Destructive tools (write_file, run_command, gmail_send, etc.) are never auto-routed — pass them explicitly via the tools parameter.


Dashboard

A local web UI runs at http://localhost:4242 with server status, registered tools, API integration cards, and a notes viewer/editor.

npm run web

Development

npm run build                # compile all servers to dist/
npm run dev:developer        # run developer server with tsx
npm run dev:notes            # run notes server with tsx
npm run dev:communication    # run communication server with tsx
npm run dev:slurm            # run slurm server with tsx
npm run web                  # local dashboard

Always run npm run build after making changes before restarting Claude.


Adding a new tool

  1. Create src/tools/mytool.ts:

import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";

export function registerMyTools(server: McpServer) {
  server.tool("my_tool", "What it does", {
    param: z.string().describe("A parameter"),
  }, async ({ param }) => {
    return { content: [{ type: "text" as const, text: `result` }] };
  });
}
  1. Import and call in the relevant entry point (src/developer.ts, src/notes-server.ts, etc.).

  2. Add to the TOOLS array in src/web.ts for the dashboard.

  3. Run npm run build.


Notes storage

Notes are persisted at ~/.aum-mcp/notes.json.

Available Tools

8 tools
note_deleteC

Delete a note by key.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesNote key to delete

TDQS

C2.9/5.0
Behavior2/5

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

No annotations exist, so the description must carry the full burden of behavioral disclosure. It only repeats the verb 'delete,' which implies destruction, but lacks details about side effects (e.g., irreversibility, impact on related data), required permissions, or error conditions. For a mutation tool, this is insufficient.

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

Conciseness4/5

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

The description is a single sentence with no wasted words. It is appropriately sized for a simple one-parameter tool, though it could benefit from modest expansion on behavioral context without becoming verbose.

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

Completeness2/5

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

Given the tool is a deletion operation with no output schema or annotations, the description is incomplete. It omits crucial context such as permanent nature of deletion, return values, error scenarios, and any constraints. A more complete description would note irreversibility and common failure modes.

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% (the key parameter is described as 'Note key to delete'). The description adds 'by key,' which does not enrich beyond the schema. Baseline 3 applies, as the description offers no additional meaning.

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 'Delete a note by key' clearly states the action (delete) and the resource (note) with an identifier (key). This distinguishes it from sibling tools like note_get (retrieve), note_set (create/update), and note_list (list), though it does not explicitly call out the differentiation.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, when deletion is appropriate, or any warnings about irreversibility. An agent is left without context to decide between this and note_set for removal.

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

note_getC

Retrieve a note by key.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesNote key to retrieve

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. The description only says 'Retrieve a note by key' which implies a read operation, but it does not mention if the tool is idempotent, what happens if the key is missing (error vs null), whether it's safe to invoke repeatedly, or any side effects. There is no contradiction with annotations as none exist.

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

Conciseness4/5

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

The description is extremely short at four words, one sentence. It is front-loaded with the verb and resource. While this is concise, it may be too terse for a tool with no annotations, but for a simple single-parameter retrieval tool, it is adequately concise.

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

Completeness2/5

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

Given the tool's simplicity (one required parameter, no nested objects, no output schema), the description provides the bare minimum. It does not specify the return format, success/error behavior, or whether partial keys are accepted. For a retrieval tool without an output schema, more context about what is returned would help the agent use the tool correctly.

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

Parameters2/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 the 'key' parameter as 'Note key to retrieve'. The description adds no additional meaning beyond the schema, merely restating the parameter's role. However, the description and schema together are minimal and leave ambiguity about the key's format (e.g., is it a UUID, path, or something else). The agent gains no semantic clarity beyond what's in the schema.

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

Purpose3/5

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

The description states 'Retrieve a note by key' which clearly identifies the verb (Retrieve) and resource (note) and the method (by key). It is distinct from siblings like note_set or note_list, but does not elaborate on what retrieval means or whether it's a full or partial read. It's not a tautology, but it's minimal.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like note_list or word_read. It does not state any preconditions (e.g., key must exist), nor scenarios where it should or should not be used. The context signals show several sibling tools, but no differentiation is offered.

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

note_listA

List all saved note keys.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided, so description must handle behavioral disclosure. It states the action (list all keys), but does not mention if this is a read-only operation, if it returns data in any particular format, or if there are any side effects. With no annotations, it carries full burden but is minimal.

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

Conciseness5/5

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

Single sentence, front-loaded with verb and resource. No wasted words. Perfectly concise for a trivial tool.

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?

Tool is simple (0 params, no output schema), so description is arguably complete. However, no mention of expected output format or behavior when no notes exist. Could clarify that it returns a list of strings. Given simplicity, a 3 is reasonable.

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

Parameters4/5

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

Schema has zero parameters and 100% coverage (no need for additional param info). The description does not add any parameter meaning, but since schema is empty, baseline is 4. It correctly provides context about what is listed (keys), which is useful.

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?

Description clearly states the tool lists all saved note keys. It is specific about the resource (note keys) and the action (list). Sibling tools include note_set, note_get, note_delete, so it is distinct from others.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance. The description implies it is for listing all keys, but does not clarify that this returns only keys, not values, or that it is a simple enumeration. No alternative tool suggested (e.g., note_get for retrieving a value).

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

note_setB

Save a note with a key. Overwrites existing notes with the same key.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesNote key / identifier
contentYesNote content

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses the overwrite behavior, but lacks details on return value, error conditions, authorization needs, or side effects. For a write operation, this is insufficient.

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

Conciseness5/5

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

The description is extremely concise (two sentences, 11 words) and front-loaded with the key action. No redundant or unnecessary information is present.

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

Completeness2/5

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

Given the simplicity (2 params, no output schema, no nested objects), the description lacks key context such as what the tool returns (acknowledgment, created note, etc.) and any constraints or error states. It is incomplete for a tool with no annotations.

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 input schema already documents both parameters. The description adds no additional meaning to the parameters beyond what is in the schema, warranting the baseline score of 3.

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 'Save a note with a key' with a specific verb and resource. It explicitly mentions overwriting behavior, distinguishing it from sibling tools like note_get (read), note_list (list), and note_delete (delete).

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 creating or updating notes by key ('overwrites existing notes'), but does not provide explicit guidance on when to use this tool versus alternatives (e.g., note_get for reading, note_delete for removal). The coverage is adequate but not prescriptive.

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

ppt_createA

Create a Microsoft PowerPoint (.pptx) file from a list of slides, each with a title and optional bullet points.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path to write the .pptx file to (must end in .pptx)
slidesYesOrdered list of slides

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries full behavioral disclosure burden. It only states it creates a file but omits key traits such as whether existing files are overwritten, required permissions, file size limits, or error handling. For a mutation tool, this is insufficient.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the core purpose. Every word earns its place with no redundancy or fluff.

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?

For a simple file-creation tool with 2 parameters and no output schema, the description covers the basic input structure. However, it lacks details on overwrite behavior, return values, or potential errors, leaving gaps for an agent that needs to invoke it correctly.

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% and the description adds 'each with a title and optional bullet points', which echoes the schema but does not add new meaning beyond what the property descriptions already provide. Baseline 3 is appropriate; no extra constraints or format details are given.

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 creates a .pptx file from a list of slides, each with a title and optional bullet points. The verb 'create' and resource 'PowerPoint file' are specific, and it distinguishes itself from siblings like word_create (Word files) and note_set (notes).

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 creating PowerPoint files but offers no explicit guidance on when to choose it over alternatives like word_create or note_set. Sibling tools exist, so additional context about when to use each would be beneficial but is missing.

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

ppt_readA

Extract all text content from a Microsoft PowerPoint (.pptx) file, slide by slide.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path to the .pptx file

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It states the core action (extract text) and implies a read-only operation, but lacks details on error handling (e.g., missing file, non-pptx format), performance characteristics, or whether the tool modifies the file. The description is functional but not fully 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?

The description is a single, well-formed sentence that conveys all essential information without any extraneous words. Every element earns its place: the verb, resource type, file format, and the 'slide by slide' detail. It is optimally concise.

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 the tool's simplicity (one parameter, no output schema), the description is nearly complete. It explains what the tool does and hints at the output structure ('slide by slide'). However, it could more explicitly state the return format (e.g., an array of strings per slide) and error behaviors, which would make it fully self-contained.

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

Parameters3/5

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

The input schema already provides a clear description for the only parameter ('Absolute path to the .pptx file') with 100% coverage. The tool description does not add any additional meaning or context beyond what the schema provides, so the parameter semantics are adequate but not enhanced.

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 'Extract', the resource 'all text content from a Microsoft PowerPoint (.pptx) file', and the manner 'slide by slide'. It distinctly differentiates from sibling tools like ppt_create (creation) and word_read (Word files), 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 Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., word_read for Word files, note_read for notes). An agent reading the description alone cannot determine under what circumstances this tool is appropriate or when to choose a sibling tool, leaving a significant gap in decision support.

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

word_createB

Create a Microsoft Word (.docx) file from structured content (headings, paragraphs, bullets).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path to write the .docx file to
itemsYesOrdered list of content blocks

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. However, it does not mention whether the tool overwrites existing files, requires specific permissions, or has size/length limits. The description is minimal, leaving the agent uncertain about side effects like file replacement or editing behavior.

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

Conciseness5/5

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

The description is a single sentence that directly conveys the tool's purpose and output format. There is no redundant information, no filler, and it front-loads the essential action (create a .docx file). It is appropriately sized for a straightforward tool.

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

Completeness3/5

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

Given the tool's low complexity (two parameters, no output schema, no annotations), the description is mostly adequate but lacks clarity on overwrite behavior and return value (e.g., success/failure indication). Without an output schema, some return information would be helpful. It covers the basics but leaves minor gaps.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents both parameters. The description adds no additional meaning beyond what the schema provides—it simply restates that items contain structured content with headings, paragraphs, and bullets, which is already clear from the enum values in the schema. Baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states that the tool creates a .docx file from structured content and lists the supported elements (headings, paragraphs, bullets). The purpose is explicit and different from sibling tools like word_read, ppt_create, or note_set, but does not differentiate itself from other creation tools like ppt_create.

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 generating Word documents from structured data, but provides no guidance on when to use this tool versus alternatives such as ppt_create or note_set, nor does it mention prerequisites (e.g., file path validity) or situations where this tool would be inappropriate.

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

word_readA

Extract all text content from a Microsoft Word (.docx) file.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path to the .docx file

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the burden of behavioral disclosure. It states the core action ('Extract all text content') which implies a non-destructive read, but does not mention output format, error handling, or whether .doc is supported. This is adequate but leaves gaps.

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

Conciseness5/5

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

The description is a single, clear sentence with no redundant words. It is front-loaded and immediately conveys what the tool does.

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 is simple with one parameter and no output schema. The description conveys the purpose and the resource, and it implicitly indicates the return value (the extracted text). Minor gaps include lack of explicit return value description and edge cases, but for such a straightforward tool, the description is nearly 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% for the only parameter (path). The description adds no additional meaning beyond the schema, which already documents the path as an absolute path to the .docx file. 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 tool extracts text content from a .docx file, using a specific verb ('Extract') and resource ('Microsoft Word (.docx) file'). This distinguishes it from sibling tools like word_create (which creates) and ppt_read (which reads PPT files).

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 implicitly communicates when to use this tool: for reading text from Word .docx files. It does not explicitly mention alternatives or exclusions, but the clarity of the resource and the presence of siblings like ppt_read make it obvious. Minor gap: no explicit 'when not to use' guidance.

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. 8 tool updatesv1.0.0
    • First observednote_delete
    • First observednote_get
    • First observednote_list
    • First observednote_set
    • First observedppt_create
    • First observedppt_read
    • First observedword_create
    • First observedword_read

TDQS

A3.5/5.0
Disambiguation5/5

Tools are cleanly divided into two distinct domains: notes (set/get/list/delete) and Office documents (Word read/create, PowerPoint read/create). Within each domain, actions are clearly differentiated, with no overlapping purposes.

Naming Consistency5/5

All tools follow a consistent pattern: resource prefix (note_, word_, ppt_) followed by a verb in snake_case. This makes the tool set predictable and easy to navigate for both humans and agents.

Tool Count5/5

With 8 tools spanning two focused areas, the count is well-scoped. Each tool serves a clear, necessary function without redundancy, and the server avoids being overly large or sparse.

Completeness4/5

Notes have full CRUD coverage. For Word and PowerPoint, read and create are covered, but there are no tools for updating existing documents or deleting them. This is a minor gap, but the core workflows (viewing and creating documents) are supported.

Maintenance

ActivityInactive
ResponsivenessNo issues

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
    D
    maintenance
    Acts as a proxy for multiple MCP servers, reducing context window usage from 15,000+ tokens to ~500 tokens by dynamically loading servers on-demand and exposing only 3 tools instead of all tool definitions.
    5
    GPL 3.0
  • A
    license
    A
    quality
    C
    maintenance
    A local MCP server that lets Claude delegate scoped work to Codex with structured results and guardrails, supporting planning, code review, build, reverse engineering, and long-running background tasks.
    11
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that delegates filesystem operations to a specialized React agent, reducing context usage and improving accuracy for AI applications like Claude Code.
    14
    3
    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/aumsuthar/aum-mcp-server'

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