Skip to main content
Glama
Myk3rinos

MCP Personal Tools Server

by Myk3rinos

MCP Demo Server

This project is a demonstration server for the Model Context Protocol (MCP). It provides a set of resources and tools to interact with a simple user database.

Architecture

mcp/
├───.gitignore
├───package-lock.json
├───package.json
├───tsconfig.json
├───.git/...
├───build/
│   └───data/...
└───src/
    ├───server.ts
    └───data/
        └───users.json

The server is built with Node.js and TypeScript, using the @modelcontextprotocol/sdk. It communicates over standard I/O using a StdioServerTransport.

The server exposes the following:

  • Resources:

    • user-details: Fetches user profiles from a JSON file.

  • Tools:

    • create-user: Creates a new user in the JSON database.

    • add-note: Adds a note to a local file in the user's documents directory.

Related MCP server: Agent Construct

Installation

  1. Clone the repository.

  2. Install the dependencies:

    npm install
  3. Build the server:

    npm run server:build

Usage

To start the server, run:

npm start

For development, you can use:

npm run server:dev

This will start the server with tsx for automatic recompilation.

Available Scripts

  • npm start: Starts the production server.

  • npm run server:dev: Starts the development server.

  • npm run server:build: Compiles the TypeScript code.

  • npm run server:build:watch: Compiles the TypeScript code in watch mode.

  • npm run server:inspect: Inspects the server using the MCP Inspector.

Resources

user-details

  • Description: Get a user's details from the database.

  • URI: users://{userId}/profile

  • MIME Type: application/json

Tools

create-user

  • Description: Create a new user in the database.

  • Parameters:

    • name (string)

    • email (string)

    • address (string)

    • phone (string)

    • password (string)

add-note

  • Description: Adds a new line to the notes file.

  • Parameters:

    • text (string): The text to add to the notes file.

Available Tools

2 tools
add-noteB

Ajoute une nouvelle ligne au fichier de notes

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesLe texte à ajouter au fichier de notes

TDQS

B3.3/5.0
Behavior3/5

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

The description adds minimal behavioral context beyond what annotations provide. Annotations already indicate this is a write operation (readOnlyHint: false), non-destructive, non-idempotent, and open-world. The description confirms it adds content but doesn't disclose important behavioral details like file location, format, permissions needed, or error conditions. No contradiction with annotations exists.

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 that efficiently communicates the core purpose. There's no wasted language or unnecessary elaboration. It's appropriately sized for a simple tool with one parameter and good annotation coverage.

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 write operation with good annotation coverage and a fully documented single parameter, the description is minimally adequate. However, without an output schema, the description doesn't explain what happens after adding the note (success confirmation, error handling, or return values). The annotations help but don't fully compensate for missing behavioral details in the description.

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?

With 100% schema description coverage, the input schema already fully documents the single 'text' parameter. The description doesn't add any additional meaning about parameters beyond what's in the schema. It mentions adding a line to a notes file, which aligns with the parameter purpose, but provides no extra semantic context about parameter usage or constraints.

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

Purpose4/5

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

The description clearly states the action ('Ajoute' - adds) and resource ('une nouvelle ligne au fichier de notes' - a new line to the notes file). It specifies what gets added (a line) and where (to the notes file), which is specific and actionable. However, it doesn't explicitly distinguish this from the sibling 'create-user' tool, which is a different operation entirely.

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. It doesn't mention prerequisites, constraints, or appropriate contexts for adding notes. There's no indication of when this tool should be preferred over other note-related operations (though none are listed as siblings beyond 'create-user').

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

create-userB

Create a new user in the database

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
emailYes
addressYes
phoneYes
passwordYes

TDQS

B3/5.0
Behavior3/5

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

Annotations provide key behavioral hints: readOnlyHint=false (write operation), openWorldHint=true (can create new entities), idempotentHint=false (not repeatable), destructiveHint=false (safe). The description adds no additional behavioral context beyond confirming it's a creation operation, which aligns with annotations but doesn't elaborate on permissions, side effects, or error handling.

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, direct sentence with no wasted words. It is appropriately sized and front-loaded, efficiently conveying the core purpose without unnecessary elaboration.

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?

For a write operation with 5 required parameters, 0% schema coverage, and no output schema, the description is inadequate. It lacks parameter explanations, usage context, and behavioral details beyond basic creation, failing to provide the completeness needed for effective tool invocation.

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 0%, so parameters are undocumented in the schema. The description provides no information about what the parameters mean, their constraints, or how they interact. It fails to compensate for the lack of schema documentation, leaving semantics unclear.

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

Purpose4/5

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

The description clearly states the verb ('Create') and resource ('new user in the database'), making the purpose immediately understandable. However, it does not differentiate from the sibling tool 'add-note', which appears unrelated but could potentially overlap in some contexts without explicit distinction.

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, prerequisites, or exclusions. It simply states what the tool does without context for selection, leaving the agent to infer usage based on the tool name alone.

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. 2 tool updates
    • First observedadd-note
    • First observedcreate-user

TDQS

B3/5.0
Disambiguation5/5

The two tools have completely distinct purposes: one handles file-based note-taking (add-note), while the other manages database users (create-user). There is no overlap or ambiguity between these functions, making it easy for an agent to select the correct tool.

Naming Consistency2/5

The naming is inconsistent: add-note uses a verb-object pattern with a hyphen, while create-user uses a verb-object pattern with a hyphen but differs in verb choice (add vs. create). Although both use hyphens, the verb inconsistency and lack of a clear naming convention (e.g., all using the same verb style) reduce predictability.

Tool Count2/5

With only 2 tools, the server feels severely under-scoped for a 'Personal Tools Server' that implies a broader utility set. This minimal count suggests incomplete coverage of personal tooling needs, such as missing operations for notes (e.g., read, delete) or users (e.g., get, update).

Completeness2/5

The tool surface has significant gaps. For notes, there is only an 'add' operation without read, update, or delete capabilities. For users, only 'create' is provided, lacking get, update, delete, or list functions. This incomplete coverage will likely cause agent failures when trying to perform common workflows.

Maintenance

ActivityInactive
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

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/Myk3rinos/MCP'

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