Skip to main content
Glama
vestimir
by vestimir
README.md
# Model Context Protocol — Workshop starter

## Ideas

- Get public holidays: I have 15 remaining vacation days, use public holidays and optimize when to get them.
- Get HDD free space: How many copies of War and Peace I can store in the remaining space on my HDD?
- Convert timezones: What time in Valencia is 9am NY time? Here’s the agenda for the conference, show me the schedule in Sofia time.
- Get latest news from RSS: What are the positive news from CNN? Summarize what’s happening in the USA right now in the style of Bill Hicks.
- Get diff of pull request: Perform code review of this open source PR https://github.com/rails/rails/pull/55072 (hint if you append .diff to the URL you get the git diff patch)
- Get Core Web Vitals for an URL: How can I improve the performance of this website https://www.flywire.com

## Resources

- https://modelcontextprotocol.io/
- https://github.com/yjacquin/fast-mcp
- https://github.com/geelen/mcp-remote

## Getting started with plain Ruby

Install dependencies with:

```
gem install fast-mcp
```

## Getting started with Sinatra

Install dependencies with:

```
bundle install
```

Start the server with:

```
ruby sinatra.rb
```

## Getting started with Node

Install dependencies with:

```
npm install
```

## Testing with MCP Inspector

Start the official MCP inspector:

```
npx @modelcontextprotocol/inspector
```

Open http://127.0.0.1:6274/ and connect to you server:

**Plain Ruby**

- transport: stdio
- command: ruby
- arguments: /path/to/server.rb

**Sinatra**

- transport: sse
- URL: http://127.0.0.1:4567/mcp/sse

**Node**

- transport: stdio
- command: node
- arguments: /path/to/build/index.js

Go to **Tools** and explore.

## Testing with AI agent

You can use the following clients:

- Claude Desktop
- Visual Studio Code
- Cursor
- Zed

Follow its configuration to add the MCP server to the list of tools. 

TDQS

C2.7/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The tool's purpose is clearly distinct by default.

Naming Consistency5/5

A single tool inherently has consistent naming, as there are no other tools to compare it against. The tool name 'get-igor' follows a verb-noun pattern, which is straightforward.

Tool Count2/5

One tool is generally too few for a server's purpose unless it's extremely narrow, but the tool description suggests a trivial or joke functionality ('When somebody asks for or mentions Igor'), which feels insufficient for a meaningful server scope. This mismatch makes the count inappropriate.

Completeness1/5

The server's domain is unclear from the single tool, but the tool 'get-igor' appears to be a trivial or humorous response mechanism. There are obvious gaps as no meaningful operations or lifecycle coverage are provided, making the surface severely incomplete for any practical purpose.

Maintenance

ActivityInactive
ResponsivenessNo issues