quotable-api-mcp
Click on "Deploy 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., "@quotable-api-mcpget a random quote"
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.
quotable-api-mcp
A Model Context Protocol (MCP) server built with mcp-framework.
Quick Start
# Install dependencies
npm install
# Build the project
npm run build
Related MCP server: Bootstrap MCP Server
Project Structure
quotable-api-mcp/
├── src/
│ ├── tools/ # MCP Tools
│ │ └── ExampleTool.ts
│ └── index.ts # Server entry point
├── package.json
└── tsconfig.jsonAdding Components
The project comes with an example tool in src/tools/ExampleTool.ts. You can add more tools using the CLI:
# Add a new tool
mcp add tool my-tool
# Example tools you might create:
mcp add tool data-processor
mcp add tool api-client
mcp add tool file-handlerTool Development
Example tool structure:
import { MCPTool } from "mcp-framework";
import { z } from "zod";
interface MyToolInput {
message: string;
}
class MyTool extends MCPTool<MyToolInput> {
name = "my_tool";
description = "Describes what your tool does";
schema = {
message: {
type: z.string(),
description: "Description of this input parameter",
},
};
async execute(input: MyToolInput) {
// Your tool logic here
return `Processed: ${input.message}`;
}
}
export default MyTool;Publishing to npm
Update your package.json:
Ensure
nameis unique and follows npm naming conventionsSet appropriate
versionAdd
description,author,license, etc.Check
binpoints to the correct entry file
Build and test locally:
npm run build npm link quotable-api-mcp # Test your CLI locallyLogin to npm (create account if necessary):
npm loginPublish your package:
npm publish
After publishing, users can add it to their claude desktop client (read below) or run it with npx
## Using with Claude Desktop
### Local Development
Add this configuration to your Claude Desktop config file:
**MacOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%/Claude/claude_desktop_config.json`
```json
{
"mcpServers": {
"quotable-api-mcp": {
"command": "node",
"args":["/absolute/path/to/quotable-api-mcp/dist/index.js"]
}
}
}After Publishing
Add this configuration to your Claude Desktop config file:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"quotable-api-mcp": {
"command": "npx",
"args": ["quotable-api-mcp"]
}
}
}Building and Testing
Make changes to your tools
Run
npm run buildto compileThe server will automatically load your tools on startup
Learn More
Available Tools
2 toolshealth-checkD
HealthCheck tool description
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose side effects, safety, and return behavior. The placeholder text reveals nothing about whether this is read-only, what it returns, or what side effects it may have.
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 short but this is under-specification, not concise efficiency. A single placeholder sentence with no substantive content does not earn credit for conciseness because it fails to communicate essential information.
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 no annotations, no output schema, and an empty parameter schema, the description is the only source of context. 'HealthCheck tool description' provides none, leaving the agent with no understanding of purpose, behavior, or expected output.
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 input schema has zero properties, so there are no parameter semantics for the description to clarify. Per the scoring rule, a zero-parameter tool receives a baseline of 4 because no parameter ambiguity exists.
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 'HealthCheck tool description' is a placeholder that simply repeats the tool name without stating an action, resource, or outcome. It does not use a specific verb like 'perform' or 'check' and therefore gives the agent no concrete sense of what the tool actually does.
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?
There is no guidance about when to use this tool or how it differs from the sibling tool 'random-quote'. The description contains no context, prerequisites, or exclusion criteria, so the agent cannot decide when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
random-quoteB
Get a random quote from the API
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Tags to search for | |
| query | No | Query to search for | |
| author | No | Author of the quote |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry the full burden of behavioral disclosure. It only states 'Get a random quote from the API' without revealing side effects, randomness behavior, error handling, or how the parameters affect the result. This lacks transparency.
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 a single, front-loaded sentence with no wasted words, making it efficient for its length. However, it is terse and omits useful context about parameters, though this is more a completeness issue than a conciseness one.
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 no output schema and no annotations, the description needs to compensate by explaining how to invoke the tool correctly, including parameter usage and return value. It only covers the basic action and leaves the agent guessing about the response format and how filters are applied, making it incomplete for a tool with three optional parameters.
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 input schema has 100% coverage with descriptions for each parameter, so the baseline is 3. The description itself adds no additional meaning about the parameters, nor does it explain how tags, query, and author influence the random selection, leaving the agent to rely solely on the schema's minimal descriptions.
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 identifies the tool's function with a specific verb ('Get') and resource ('a random quote'), and it is distinct from the sibling health-check tool. However, it fails to mention the tool's filtering capabilities (tags, query, author), which are part of its purpose.
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 the tool should be used when a random quote is needed, but it gives no explicit guidance on when to use filtering parameters or how this tool compares to alternatives. Since the only sibling is health-check, the distinction is obvious, but the usage context is not fully elaborated.
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.
2 tool updates
v0.0.1- First observed
health-check - First observed
random-quote
TDQS
Scored across 2 tools
The two tools have completely distinct purposes: one checks server health and the other fetches a quote. There is no overlap or ambiguity between them.
Both tool names follow a consistent kebab-case pattern with two words. However, they use adjectives/nouns rather than a verb-noun convention, so the style is internally consistent but less typical.
With only two tools, the server feels thin for a quotes API, but it could be intentionally minimal. The count is borderline and within the acceptable range for a single-purpose service.
The server only offers a random quote and a health check. Missing obvious operations like searching quotes, fetching by ID, or listing authors leaves significant gaps for a full-featured quotes API.
Maintenance
Related MCP Connectors
Primarily to be used as a template repository for developing MCP servers with FastMCP in Python, P…
MCP registry & directory: search, find & install 31k+ MCP servers & tools. Catalog and marketplace.
Related MCP Servers
- AlicenseCqualityDmaintenanceA TypeScript-based template for building Model Context Protocol servers, featuring fast testing, automated version management, and a clean structure for MCP tool implementations.133 npm4MIT
- FlicenseCqualityDmaintenanceA minimal MCP server template with hot reload support that helps developers quickly set up and build Model Context Protocol servers with example tool implementations.3-
- FlicenseNot gradedqualityDmaintenanceA template project for quickly building Model Context Protocol (MCP) servers using TypeScript and the official SDK. It includes pre-configured examples for tools and resources to help developers jumpstart their custom MCP server development.78 npm-
- AlicenseNot gradedqualityNot gradedmaintenanceA starter template for building Model Context Protocol (MCP) servers with Node.js. It provides a foundational structure and an example tool to help developers quickly scaffold and deploy new MCP capabilities.8 npm1-