Atlas / MCP servers / flaviodelgrosso / fastify-mcp-server

fastify-mcp-serverCAUTION

mcp/flaviodelgrosso/fastify-mcp-server

Wire MCP protocol in your Fastify applications with ease

Verdict
CAUTION
Grade
B
Trust score
87 /100
Exposed tools
7 7r · 0w · 0d
Transport
streamable-http
License
ISC
Stars
29
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

A Fastify plugin for building Model Context Protocol (MCP) servers aligned with the 2026-07-28 specification over Streamable HTTP or native stdio.

The plugin provides a thin Fastify-native integration around the MCP TypeScript SDK v2. The Streamable HTTP transport is request-stateless: MCP requests are processed independently, with no initialize handshake, no Mcp-Session-Id, no protocol session store, and no transport affinity between requests. The stdio transport delegates the connection to the SDK's native serveStdio entry.

[](https://www.npmjs.com/package/fastify-mcp-server) [](https://www.npmjs.com/package/fastify-mcp-server) [](https://github.com/flaviodelgrosso/fastify-mcp-server/actions/workflows/ci.yml) [](https://codecov.io/gh/flaviodelgrosso/fastify-mcp-server)

Table of Contents

  • Fastify MCP Server Plugin
  • Table of Contents
  • Overview
  • Features
  • Core Functionality
  • Advanced Features
  • Installation
  • Quick Demo
  • Quick Start
  • Streamable HTTP and stdio
  • API Reference
  • Plugin Options
  • MCP Decorator
  • Transports
  • Transport Selection
  • Lifecycle
  • Logging and stdout Safety
  • HTTP and stdio Differences
  • [HTTP Protocol](#http-proto
Read from source at commit c84aba3cb8a3OBSERVED · 2026-10-12
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code
claude mcp add fastify-mcp-server -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "fastify-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ]
    }
  }
}
03

Exposed tools (7)

7 read · 0 write · 0 destructive.

ToolRiskDescription
confirmread
deployment-nameread
echoread
example-auth-toolread
get-datetimeread
regionalread
waitread
04

Trust audit

CAUTIONgrade B · trust 87/100 Install with care. The audit found things worth knowing before you trust its output.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (3 observation(s))
Network
declared (4 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (11)

MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
demo/plugins/fastifyMcp.ts:38
authorization_endpoint: 'http://127.0.0.1:9080/authorize',
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
demo/plugins/fastifyMcp.ts:39
issuer: 'http://127.0.0.1:9080',
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
demo/plugins/fastifyMcp.ts:41
token_endpoint: 'http://127.0.0.1:9080/token'
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
demo/plugins/fastifyMcp.ts:43
resourceServerUrl: new URL('http://127.0.0.1:9080/mcp'),
MEDIUMAuth / authz · mcp.remote_no_auth · CWE-287, CWE-862
streamable-http
Why it matters. a network transport with no auth environment variable found
Fix. require a token
LOWInventory / provenance · inv.hidden_file · CWE-1104
.commitlintrc
.commitlintrc
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
demo/mcp/server.ts:5
import packageJson from '../../package.json' with { type: 'json' };
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
demo/plugins/fastifyMcp.ts:4
import FastifyMcpServer from '../../src/index.ts';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
demo/plugins/fastifyMcp.ts:7
import type { FastifyMcpServerOptions } from '../../src/types.ts';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
test/fixtures/stdio-server.ts:4
import FastifyMcpServer from '../../src/index.ts';
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/node, fastify-plugin, @commitlint/cli, @commitlint/config-conventional, @fastify/autoload, @fastify/cors, @fastify/formbody, @modelcontextprotocol/client
Why it matters. 23 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass.

Audited 2026-10-12 · audit v0.4.1 · source sha c84aba3cb8a3full audit observations/trust-audit/mcp-server/flaviodelgrosso__fastify-mcp-server.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-12c84aba3cb8a3CAUTIONB87first audit
06

Questions

What is the fastify-mcp-server MCP server?

Wire MCP protocol in your Fastify applications with ease

What tools does fastify-mcp-server expose?

7 in total: 7 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is fastify-mcp-server safe to connect to an agent?

With care. The audit graded it B (87/100) and found 11 things worth knowing before you trust this server, listed below with the exact line each was found on.

What credentials does fastify-mcp-server need?

No credential environment variables were found in its source, so it appears to need none.

How does fastify-mcp-server run?

It speaks streamable-http, so it runs as a service you connect to over the network. It is published on npm as fastify-mcp-server at 1.1.0.

How current is this page?

The grade is for one exact copy of the source (c84aba3cb8a3), read on 2026-10-12. The repository is watched and re-audited when it changes.

Advertisement