这是一个使用Node.js和Express构建的**模型上下文协议(MCP)**服务器的简单原型。它能与OpenAI的API交互,模拟一个具有上下文感知的支持助手,比如可以帮助编写故事。
本项目是一个使用Node.js和Express构建的模型上下文协议(MCP)服务器原型,通过与OpenAI的API交互,实现具有上下文感知的故事编写支持。
system、user、steps和resources结构化你的上下文。git clone https://github.com/takehisa10098/plot-mcp-server.git
cd plot-mcp-server
npm install
.env文件OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx
context.json文件{
"system": "你是支持小说创作的AI。",
"user": {
"goal": "想写一篇和风奇幻短篇小说",
"constraints": ["字数在3000字以内", "主题为『丧失与再生』"]
},
"steps": [
{ "name": "角色创建", "status": "已完成" },
{ "name": "情节生成", "status": "进行中" }
],
"resources": {
"characters": [
{ "name": "茜", "role": "主人公", "trait": "沉默寡言但内心坚强" }
],
"world": "战国时代风格的异世界,存在阴阳术。"
}
}
server.jsconst express = require('express');
const fs = require('fs');
const dotenv = require('dotenv');
const openai = require('openai');
const app = express();
app.use(express.json());
const port = 3000;
app.listen(port, () => {
console.log(`服务器运行在 http://localhost:${port}`);
});
// 定义路由
app.get('/steps', (req, res) => {
// 处理步骤逻辑
});
app.post('/update/characters', (req, res) => {
const character = req.body;
// 添加角色到resources
});
openai.js配置文件const OpenAI = require('openai');
const openaiConfig = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
dangerouslyAllowBrowser: true
});
module.exports = openaiConfig;
模型上下文协议(MCP)是一种用于结构化大语言模型(LLM)上下文信息的格式。它允许应用程序定义system、user、steps和resources来表示对话或项目的当前状态。此项目展示了如何通过修改结构化的上下文,而不是每次重写提示词,来设计LLM交互。