Token导航 LogoToken导航TokenDH.com
Plot MCP Server logo
AI代理HTTP官方级别未说明来源级核验

Plot MCP Server

MCP Server

一个基于Node.js和OpenAI API的上下文感知故事生成服务器,帮助用户动态生成和修改故事内容。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
上下文感知JavaScriptOpenAI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

takehisa10098

提供方

takehisa10098

最后核验

2026/5/17 20:53

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

🧠 使用Node.js的简单MCP服务器

这是一个简单的原型 模型上下文协议(MCP) 使用Node.js和Express构建的服务器。\ 它与OpenAI的API交互,以模拟一个上下文感知助手作为例子,一个帮助撰写故事的助手。

______________________________________________________________________

🚀 你能做什么

  • 用以下方式构建您的上下文 system, user, steps,以及 resources
  • 调用OpenAI API,使用上下文生成故事情节
  • 通过API动态添加字符
  • 了解不断变化的上下文如何影响LLM响应

______________________________________________________________________

📦 需求

______________________________________________________________________

🛠 设置

1.克隆此存储库

git clone https://github.com/takehisa10098/plot-mcp-server.git
cd plot-mcp-server

2.安装依赖项

npm install

3.创建 .env 文件

OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx

4.创建 context.json 文件

{
  "system": "あなたは小説執筆のサポートAIです。",
  "user": {
    "goal": "和風ファンタジーの短編小説を書きたい",
    "constraints": ["文字数は3000字以内", "テーマは『喪失と再生』"]
  },
  "steps": [
    { "name": "キャラクター作成", "status": "done" },
    { "name": "プロット生成", "status": "in_progress" }
  ],
  "resources": {
    "characters": [
      { "name": "アカネ", "role": "主人公", "trait": "寡黙で芯が強い" }
    ],
    "world": "戦国時代風の異世界。陰陽術が存在する。"
  }
}

5.创建 server.js

const express = require('express');
const fs = require('fs');
const dotenv = require('dotenv');
const { getPlotSuggestion } = require('./openai');

dotenv.config();
const app = express();
app.use(express.json());

const PORT = 3000;
const CONTEXT_PATH = './context.json';

const readContext = () => JSON.parse(fs.readFileSync(CONTEXT_PATH, 'utf-8'));

app.get('/context', (req, res) => {
  const context = readContext();
  res.json(context);
});

app.post('/step/plot', async (req, res) => {
  const context = readContext();
  const plot = await getPlotSuggestion(context);
  res.json({ plot });
});

app.post('/update/characters', (req, res) => {
  const context = readContext();
  const newCharacter = req.body;

  if (!newCharacter.name || !newCharacter.role || !newCharacter.trait) {
    return res.status(400).json({ error: 'name, role, and trait are required' });
  }

  context.resources.characters.push(newCharacter);
  fs.writeFileSync(CONTEXT_PATH, JSON.stringify(context, null, 2), 'utf-8');
  res.json({ message: 'Character added', character: newCharacter });
});

app.listen(PORT, () => {
  console.log(`MCP server running at http://localhost:${PORT}`);
});

6.创建 openai.js

const { OpenAI } = require('openai');
require('dotenv').config();

const openai = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY,
});

async function getPlotSuggestion(context) {
  const { system, user, resources } = context;

  const messages = [
    { role: 'system', content: system },
    {
      role: 'user',
      content: `
目標: ${user.goal}
制約: ${user.constraints.join(', ')}

キャラクター: ${JSON.stringify(resources.characters)}
世界観: ${resources.world}

これを踏まえて、小説のプロット案を出してください。
      `
    }
  ];

  const res = await openai.chat.completions.create({
    model: 'gpt-4-turbo',
    messages,
  });

  return res.choices[0].message.content;
}

module.exports = { getPlotSuggestion };

______________________________________________________________________

🧪 如何使用

启动服务器

node server.js

获取当前上下文

curl http://localhost:3000/context

生成绘图

curl -X POST http://localhost:3000/step/plot

添加新角色

curl -X POST http://localhost:3000/update/characters \
  -H "Content-Type: application/json" \
  -d '{
    "name": "ユキ",
    "role": "謎の旅人",
    "trait": "静かで何かを知っているような雰囲気"
  }'

______________________________________________________________________

💡 什么是MCP?

模型上下文协议(MCP)是一种用于构建LLM上下文信息的拟议格式。\ 它允许应用程序定义 system, user, steps,以及 resources 代表对话或项目的持续状态。

本项目展示了如何通过以下方式设计LLM交互 修改结构化上下文,而不是每次都重写提示。

______________________________________________________________________

🔗 相关

______________________________________________________________________

目录标签

目录标签

上下文感知JavaScriptOpenAI故事生成本地部署Node.js小说创作

接入字段

传输方式(transport,传输协议)

HTTP

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

HTTPnone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP