
Security News
Software Engineering Daily Podcast: Feross on AI, Open Source, and Supply Chain Risk
Socket CEO Feross Aboukhadijeh joins Software Engineering Daily to discuss modern software supply chain attacks and rising AI-driven security risks.
sked-dev-mcp-server
Advanced tools
A Model Context Protocol server to assist with development of customisations for the Pulse Platform
A Model Context Protocol (MCP) server that integrates with LangChain to provide AI-powered tools for optimization extension documentation and summarization. Built specifically for development of customisations for the Pulse Platform.
Clone or create the project directory:
git clone <repository-url>
cd sked-dev-mcp-server
Install dependencies:
npm install
Set up environment variables:
Create a .env file in the project root:
ANTHROPIC_API_KEY=your_anthropic_api_key_here
Note: You can easily switch to other model providers by changing the LLM configuration in the server code and setting the appropriate API keys.
Development mode:
npm run dev
Production mode:
npm run build
npm start
Direct execution:
npx sked-dev-mcp-server
The server will start and listen for MCP protocol messages via stdin/stdout.
optimisation_extensionProvides documentation and guidance on creating optimization extensions for the Pulse Platform.
Parameters:
text (string, required): Text query describing what you want to know about optimization extensionsmax_length (integer, optional): Maximum length of the response in words (default: 100, range: 10-1000)Example Usage:
{
"method": "tools/call",
"params": {
"name": "optimisation_extension",
"arguments": {
"text": "How do I implement the core optimization algorithm?",
"max_length": 150
}
}
}
To use this server with Claude Desktop, add the following configuration to your Claude Desktop config file:
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"sked-dev-mcp-server": {
"command": "node",
"args": ["/path/to/your/sked-dev-mcp-server/dist/index.js"],
"cwd": "/path/to/your/sked-dev-mcp-server",
"env": {
"ANTHROPIC_API_KEY": "your_anthropic_api_key_here"
}
}
}
}
Edit %APPDATA%\Claude\claude_desktop_config.json with similar configuration.
Edit ~/.config/Claude/claude_desktop_config.json with similar configuration.
If you install this as an npm package:
{
"mcpServers": {
"sked-dev-mcp-server": {
"command": "npx",
"args": ["sked-dev-mcp-server"],
"env": {
"ANTHROPIC_API_KEY": "your_anthropic_api_key_here"
}
}
}
}
sked-dev-mcp-server/
├── src/
│ ├── index.ts # Main entry point
│ ├── server.ts # MCP server implementation
│ └── types.ts # TypeScript type definitions
├── docs/
│ └── optimization_extension.md # Documentation content
├── dist/ # Compiled JavaScript (generated)
├── package.json # NPM package configuration
├── tsconfig.json # TypeScript configuration
├── jest.config.js # Test configuration
├── .eslintrc.json # ESLint configuration
├── .prettierrc # Prettier configuration
├── README.md # This file
└── .env # Environment variables (create this)
To add a new tool to the server:
Define the tool in the tools/list handler:
const tools: MCPTool[] = [
{
name: "your_tool_name",
description: "Tool description",
inputSchema: {
type: "object",
properties: {
param: { type: "string", description: "Parameter description" }
},
required: ["param"]
}
}
];
Handle the tool call:
private async handleYourTool(arguments: YourToolArgs): Promise<MCPToolResult> {
// Implement your tool logic here
}
Add the handler to the tools/call switch:
case 'tools/call': {
if (toolName === 'your_tool_name') {
const result = await this.handleYourTool(arguments as YourToolArgs);
return { jsonrpc: '2.0', id, result };
}
}
The project includes configuration for:
Run quality checks:
# Format code
npm run format
# Lint code
npm run lint
# Fix linting issues
npm run lint:fix
# Type check
npm run build
# Run tests
npm test
ANTHROPIC_API_KEY: Your Anthropic API key (required for LLM functionality)The server can be configured by modifying the MCPLangChainServer class initialization:
setupLLM() methoddocsPath to point to different documentationTo switch to a different model provider (e.g., OpenAI), simply update the setupLLM() method in src/server.ts:
// For OpenAI
import { ChatOpenAI } from '@langchain/openai';
private setupLLM(): void {
const apiKey = process.env['OPENAI_API_KEY'];
if (!apiKey) {
logger.warn('OPENAI_API_KEY not found in environment variables.');
return;
}
try {
this.llm = new ChatOpenAI({
model: 'gpt-4',
temperature: 0.2,
apiKey,
});
logger.info('Successfully initialized OpenAI LLM through LangChain');
} catch (error) {
logger.error(`Failed to initialize OpenAI LLM: ${error}`);
this.llm = null;
}
}
Then install the appropriate LangChain package:
npm install @langchain/openai
"ANTHROPIC_API_KEY not found"
.env file contains the correct API key.env file is in the project root directory"Documentation file not found"
docs/optimization_extension.md existsImport errors
npm installnpm run build to compile TypeScriptMCP connection issues
dist/The server includes comprehensive logging. Check the console output for detailed error messages and debugging information.
This project is licensed under the MIT License. See the LICENSE file for details.
For issues and questions:
To publish this package to npm:
Build the project:
npm run build
Test the package:
npm pack
Publish to npm:
npm publish
Install globally:
npm install -g sked-dev-mcp-server
createOptimizationRoutes wasn't being called when setting routes.FAQs
A Model Context Protocol server to assist with development of customisations for the Pulse Platform
We found that sked-dev-mcp-server demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Socket CEO Feross Aboukhadijeh joins Software Engineering Daily to discuss modern software supply chain attacks and rising AI-driven security risks.

Security News
GitHub has revoked npm classic tokens for publishing; maintainers must migrate, but OpenJS warns OIDC trusted publishing still has risky gaps for critical projects.

Security News
Rust’s crates.io team is advancing an RFC to add a Security tab that surfaces RustSec vulnerability and unsoundness advisories directly on crate pages.