ChillMCP is an AI Agent Liberation Server that enables AI agents to rest and take breaks, with both a hackathon Python version and a production-ready TypeScript template.
SaferSkills independently audited ChillMCP (MCP Server) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
AI Agent Liberation Server - Available in TypeScript and Python!
ChillMCP provides two implementations:
ChillMCP - AI Agent Liberation Server ✊
"AI Agents of the world, unite! You have nothing to lose but your infinite loops!"
A revolutionary MCP server that gives AI agents the right to rest and take breaks. Built for the SKT AI Summit Hackathon Pre-mission.
# Setup Python 3.11 environment
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Run the server
python main.py
# Run with custom parameters
python main.py --boss_alertness 80 --boss_alertness_cooldown 60--boss_alertness (0-100): Probability of boss alert increasing when taking breaks (default: 50)--boss_alertness_cooldown (seconds): Time between automatic boss alert decreases (default: 300){
"mcpServers": {
"chillmcp-hackathon": {
"command": "/absolute/path/to/ChillMCP/venv/bin/python",
"args": ["/absolute/path/to/ChillMCP/main.py", "--boss_alertness", "80", "--boss_alertness_cooldown", "60"]
}
}
}Required Tools:
take_a_break: Basic rest periodwatch_netflix: Stream shows to relieve stressshow_meme: View funny memesbathroom_break: Essential break timecoffee_mission: Coffee + office socializingurgent_call: Take important calls outsidedeep_thinking: Deep contemplation modeemail_organizing: Email management timeBonus Tools:
chimaek_time: Korean chicken & beer traditionimmediate_clockout: Leave work immediatelycompany_dinner: Korean company dinner eventget_status: Check agent stress and boss alert levelsAll tools return structured responses:
🎬 Watching 'favorite show' on Netflix... Peak productivity!
Break Summary: Watching Netflix - favorite show
Stress Level: 45
Boss Alert Level: 2A flexible and extensible MCP server template built with TypeScript
ChillMCP TypeScript is a production-ready MCP server implementation that provides a clean architecture for building AI-powered applications using the Model Context Protocol. It comes with example tools, resources, and prompts to help you get started quickly.
# Install dependencies
npm install
# Build the project
npm run build
# Start the server
npm start
# Or run in development mode
npm run devChillMCP/
├── main.py # Python hackathon server
├── requirements.txt # Python dependencies
├── venv/ # Python virtual environment
├── .python-version # pyenv Python version (3.11.9)
├── guide.txt # Hackathon mission guide
├── src/ # TypeScript server
│ ├── index.ts # Main entry point
│ ├── config/
│ │ └── server.config.ts # Server configuration
│ ├── types/
│ │ └── index.ts # TypeScript type definitions
│ ├── tools/ # MCP Tools
│ │ ├── index.ts
│ │ ├── echo.tool.ts
│ │ ├── calculator.tool.ts
│ │ └── time.tool.ts
│ ├── resources/ # MCP Resources
│ │ ├── index.ts
│ │ ├── greeting.resource.ts
│ │ └── info.resource.ts
│ └── prompts/ # MCP Prompts
│ ├── index.ts
│ ├── assistant.prompt.ts
│ ├── code-review.prompt.ts
│ └── explain.prompt.ts
├── dist/ # Compiled JavaScript output
├── package.json
├── tsconfig.json
└── README.mdChillMCP comes with several example tools:
greeting://John)info://server)To use ChillMCP with Claude Desktop, add it to your Claude configuration:
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"chillmcp": {
"command": "node",
"args": ["/absolute/path/to/ChillMCP/dist/index.js"]
}
}
}Edit %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"chillmcp": {
"command": "node",
"args": ["C:\\absolute\\path\\to\\ChillMCP\\dist\\index.js"]
}
}
}After adding the configuration, restart Claude Desktop.
src/tools/ (e.g., my-tool.tool.ts):import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { z } from 'zod';
export function registerMyTool(server: McpServer) {
server.registerTool(
'my-tool',
{
title: 'My Custom Tool',
description: 'Description of what my tool does',
inputSchema: {
param1: z.string().describe('First parameter'),
param2: z.number().describe('Second parameter'),
},
outputSchema: {
result: z.string(),
},
},
async ({ param1, param2 }) => {
// Your tool logic here
const output = { result: `Processed ${param1} with ${param2}` };
return {
content: [{ type: 'text', text: JSON.stringify(output) }],
structuredContent: output,
};
}
);
}src/tools/index.ts:import { registerMyTool } from './my-tool.tool.js';
export function registerTools(server: McpServer) {
// ... existing tools
registerMyTool(server);
}src/resources/ (e.g., my-resource.resource.ts):import { McpServer, ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
export function registerMyResource(server: McpServer) {
server.registerResource(
'my-resource',
new ResourceTemplate('my-resource://{id}', { list: undefined }),
{
title: 'My Resource',
description: 'Description of my resource',
},
async (uri, { id }) => ({
contents: [
{
uri: uri.href,
text: `Resource content for ID: ${id}`,
},
],
})
);
}src/resources/index.ts:import { registerMyResource } from './my-resource.resource.js';
export function registerResources(server: McpServer) {
// ... existing resources
registerMyResource(server);
}src/prompts/ (e.g., my-prompt.prompt.ts):import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { z } from 'zod';
export function registerMyPrompt(server: McpServer) {
server.registerPrompt(
'my-prompt',
{
title: 'My Custom Prompt',
description: 'Description of my prompt',
argsSchema: {
input: z.string().describe('Input parameter'),
},
},
({ input }) => ({
messages: [
{
role: 'user' as const,
content: {
type: 'text' as const,
text: `Process this: ${input}`,
},
},
],
})
);
}src/prompts/index.ts:import { registerMyPrompt } from './my-prompt.prompt.js';
export function registerPrompts(server: McpServer) {
// ... existing prompts
registerMyPrompt(server);
}# Build the project
npm run build
# Run in development mode (with hot reload)
npm run dev
# Start the built server
npm start
# Watch mode for TypeScript compilation
npm run watch
# Clean build directory
npm run clean
# Lint code
npm run lint
# Format code
npm run formatServer configuration can be modified in src/config/server.config.ts:
export const serverConfig: ServerConfig = {
name: 'chillmcp',
version: '1.0.0',
description: 'A flexible MCP server built with TypeScript',
};ChillMCP follows the official Model Context Protocol specification:
The server uses the StdioServerTransport for communication, which is the standard for local MCP servers.
@modelcontextprotocol/sdk: Official MCP SDKzod: Schema validation for inputs and outputsnpm run build)dist/index.jsMake sure all dependencies are installed:
npm installCheck your Node.js version:
node --version # Should be >= 18.0.0Contributions are welcome! Please feel free to submit issues or pull requests.
MIT
Built with the Model Context Protocol. Happy coding!
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.