@ssekora/smartsheet-dev-mcp
v0.0.1
Published
SmartSheet Dev MCP
Readme
SmartSheet Dev MCP
A Model Context Protocol (MCP) server built with mcp-framework that provides tools for GitLab and Temporal workflow integration for development workflows.
Quick Start
# Install dependencies
npm install
# Build the project
npm run build
# Test locally
npm startProject Structure
smartsheet-dev-mcp/
├── src/
│ ├── tools/ # MCP Tools
│ │ ├── GitlabReviewMrTool.ts
│ │ ├── GitlabExplainTraceTool.ts
│ │ ├── TemporalSearchTemporalWorkflowsTool.ts
│ │ └── TemporalSummarizeWorkflowTool.ts
│ ├── apis/ # API clients
│ │ ├── gitlab-api.ts
│ │ └── temporal-api.ts
│ ├── types/ # Type definitions
│ │ └── temporal-workflow.ts
│ └── index.ts # Server entry point
├── package.json
├── tsconfig.json
└── release.sh # Automated release scriptFeatures
- GitLab Integration: Review merge requests, explain CI/CD traces
- Temporal Workflow Support: Search and summarize workflow executions
- MCP Framework: Built for seamless integration with Claude Desktop
- TypeScript: Fully typed for better development experience
Adding 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 New Versions
This project follows semantic versioning (SemVer). Use the appropriate version bump based on your changes:
- Patch (
0.0.5→0.0.6): Bug fixes, minor improvements - Minor (
0.0.5→0.1.0): New features, backwards-compatible changes - Major (
0.0.5→1.0.0): Breaking changes
Quick Release (Recommended)
Use the automated release script for a streamlined workflow:
# Make the script executable (first time only)
chmod +x release.sh
# Release a patch version
./release.sh patch "fix: resolve authentication issue"
# Release a minor version
./release.sh minor "feat: add new GitLab integration"
# Release a major version
./release.sh major "feat!: redesign API with breaking changes"The script will:
- ✅ Check git working directory status
- ✅ Commit any uncommitted changes (with your permission)
- ✅ Run validation (lint, build, test)
- ✅ Bump the version in package.json
- ✅ Create a git tag
- ✅ Push changes and tags to remote
Manual Release Process
If you prefer manual control, use these npm scripts:
# 1. Check for uncommitted changes
npm run version:check
# 2. Commit any pending changes
git add .
git commit -m "your commit message"
# 3. Release (includes validation, version bump, and push)
npm run release:patch # for patch version
npm run release:minor # for minor version
npm run release:major # for major versionVersion-Only (No Push)
To bump versions locally without automatic pushing:
npm run version:patch # 0.0.5 → 0.0.6
npm run version:minor # 0.0.5 → 0.1.0
npm run version:major # 0.0.5 → 1.0.0Development Scripts
# Validation (runs before every release)
npm run validate # lint + build + test
# Individual checks
npm run lint # ESLint code checking
npm run build # TypeScript compilation
npm run test # Jest test suiteRelease Checklist
Before releasing:
- [ ] All tests pass (
npm test) - [ ] Code is properly linted (
npm run lint) - [ ] Build succeeds (
npm run build) - [ ] Changes are documented
- [ ] Version type matches change impact (patch/minor/major)
Troubleshooting Releases
"Git working directory not clean" error:
# Check what files have changes
git status
# Commit or stash changes
git add . && git commit -m "prepare for release"
# OR
git stashBuild or test failures:
# Run validation to see specific issues
npm run validate
# Fix issues, then try release again
./release.sh patch "fix: resolve build issues"Push failures:
# Check remote connection
git remote -v
# Manual push if needed
git push origin main --follow-tagsPublishing to npm
Update your package.json:
- Ensure
nameis unique and follows npm naming conventions - Set appropriate
version - Add
description,author,license, etc. - Check
binpoints to the correct entry file
- Ensure
Build and test locally:
npm run build npm link gitlab # 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
Using the Published Package
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": {
"smartsheet-dev-mcp": {
"command": "npx",
"args": ["@sekora/[email protected]"]
}
}
}Local Development
For development, use the local build:
{
"mcpServers": {
"smartsheet-dev-mcp": {
"command": "node",
"args": ["/absolute/path/to/smartsheet-dev-mcp/dist/index.js"],
"cwd": "/absolute/path/to/smartsheet-dev-mcp"
}
}
}Available Tools
- GitlabReviewMrTool: Review GitLab merge requests with detailed analysis
- GitlabExplainTraceTool: Explain GitLab CI/CD traces and pipeline details
- TemporalSearchTemporalWorkflowsTool: Search for Temporal workflows
- TemporalSummarizeWorkflowTool: Summarize Temporal workflow execution details
Installation & Configuration
- Ensure you have Node.js >= 18.19.0 installed
- Configure your GitLab and Temporal API endpoints as needed
- Add the MCP server to your Claude Desktop configuration
- Restart Claude Desktop to load the new MCP server
Building and Testing
- Make changes to your tools
- Run
npm run buildto compile - The server will automatically load your tools on startup
