jorcleme/cisco-smb-mcp
If you are the rightful owner of cisco-smb-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A Model Context Protocol (MCP) server for managing documents and prompt templates, providing a standardized interface for AI applications.
cisco-smb-mcp
A Model Context Protocol (MCP) server for managing documents and prompt templates. This server provides a standardized interface for storing, retrieving, and managing documents and prompts that can be used by AI applications.
Features
Document Management
- ā Create, read, update, and delete documents
- ā Full-text search across document titles and content
- ā Tag-based filtering and organization
- ā Metadata support for custom properties
- ā Unique document IDs with timestamps
Prompt Templates
- ā Create and manage reusable prompt templates
- ā
Support for template variables with
{{placeholder}}
syntax - ā Argument definitions with descriptions and requirements
- ā Tag-based organization
- ā Built-in sample prompts (summarize, code_review)
MCP Protocol Support
- ā Tools: Document and prompt management operations
- ā Resources: Access to stored documents and prompts
- ā Prompts: Template-based prompt generation with variable substitution
- ā Standard MCP protocol compatibility
Note: This server uses the stable
Server
class from@modelcontextprotocol/sdk/server/index.js
(SDK v1.17.1). While the MCP documentation may reference newerMcpServer
class frommcp.js
, this implementation uses the proven stable API that's fully compatible with all MCP clients.
Quick Start
Prerequisites
- Node.js 18+
- npm or yarn
Installation
# Install dependencies
npm install
# Build the project
npm run build
# Run the server
npm start
Development
# Run in development mode with hot reload
npm run dev
# Run tests with the simple client
npx tsx src/simple-client.ts
Usage
As MCP Server
The server can be used with any MCP-compatible client. Configure your client to connect to this server:
{
"servers": {
"document-prompt-server": {
"type": "stdio",
"command": "node",
"args": ["dist/server.js"]
}
}
}
Available Tools
Document Tools
create_document
- Create a new documentupdate_document
- Update an existing documentget_document
- Retrieve a document by IDdelete_document
- Delete a documentsearch_documents
- Search documents by content and tags
Prompt Tools
create_prompt
- Create a new prompt template
Sample Usage
Creating a Document
await client.callTool("create_document", {
title: "Meeting Notes",
content: "Discussion about project roadmap...",
tags: ["meeting", "project"],
metadata: { date: "2024-01-15", attendees: 5 },
});
Searching Documents
await client.callTool("search_documents", {
query: "project roadmap",
tags: ["meeting"],
});
Creating a Prompt Template
await client.callTool("create_prompt", {
name: "email_draft",
description: "Draft a professional email",
template:
"Subject: {{subject}}\\n\\nDear {{recipient}},\\n\\n{{message}}\\n\\nBest regards,\\n{{sender}}",
arguments: [
{ name: "subject", description: "Email subject", required: true },
{ name: "recipient", description: "Recipient name", required: true },
{ name: "message", description: "Email body", required: true },
{ name: "sender", description: "Sender name", required: true },
],
tags: ["email", "communication"],
});
Available Resources
The server exposes several resource URIs:
document://<id>
- Individual document contentprompt://<name>
- Individual prompt templatedocuments://list
- JSON list of all documentsprompts://list
- JSON list of all prompt templates
Built-in Prompts
The server comes with sample prompts:
summarize
- Summarize text in specified number of sentencescode_review
- Review code and provide feedback
Project Structure
src/
āāā server/
ā āāā server.ts # Main MCP server implementation
ā āāā types.ts # TypeScript type definitions and schemas
ā āāā storage/
ā āāā memory.ts # In-memory storage implementations
āāā client/
āāā simple-client.ts # Test client for development
āāā client.ts # Advanced client example (work in progress)
.vscode/
āāā mcp.json # VS Code MCP server configuration
āāā launch.json # Debug configurations
āāā tasks.json # Build and test tasks
.github/
āāā copilot-instructions.md # GitHub Copilot instructions
Development Notes
Storage
Currently uses in-memory storage for simplicity. For production use, consider implementing:
- File-based storage
- Database storage (SQLite, PostgreSQL, etc.)
- External storage services
Error Handling
The server includes comprehensive error handling and validation using Zod schemas.
Extensibility
The modular design makes it easy to:
- Add new storage backends
- Implement additional tools
- Extend document/prompt schemas
- Add new resource types
VS Code Integration
This project includes VS Code configuration for debugging MCP servers:
- The
.vscode/mcp.json
file configures the server for VS Code MCP extension - Use the VS Code MCP debugging features to test the server interactively
API Reference
Document Schema
{
id: string; // Unique identifier
title: string; // Document title
content: string; // Document content
tags?: string[]; // Optional tags
metadata?: object; // Optional metadata
createdAt: Date; // Creation timestamp
updatedAt: Date; // Last update timestamp
}
Prompt Schema
{
name: string; // Unique prompt name
description?: string; // Optional description
template: string; // Template with {{placeholders}}
arguments?: Array<{ // Template arguments
name: string;
description?: string;
required?: boolean;
}>;
tags?: string[]; // Optional tags
createdAt: Date; // Creation timestamp
updatedAt: Date; // Last update timestamp
}
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Run the test client to verify functionality
- Submit a pull request
License
ISC License - see LICENSE file for details.