systemprompt-mcp-reddit
Version:
A specialized Model Context Protocol (MCP) server that enables you to search, read, and interact with Reddit content, leveraging an AI Agent to help with each operation.
163 lines • 4.97 kB
JavaScript
export const REDDIT_POST_RESPONSE_SCHEMA = {
type: "object",
properties: {
title: {
type: "string",
description: "Post title (1-300 characters)",
minLength: 1,
maxLength: 300,
},
content: {
type: "string",
description: "Text content for the post",
},
subreddit: {
type: "string",
description: "Subreddit to post to (without r/ prefix)",
},
flair_id: {
type: "string",
description: "Flair ID if the subreddit requires it",
},
flair_text: {
type: "string",
description: "Flair text if the subreddit requires it",
},
sendreplies: {
type: "boolean",
description: "Whether to send replies to inbox",
default: true,
},
nsfw: {
type: "boolean",
description: "Whether to mark as NSFW",
default: false,
},
spoiler: {
type: "boolean",
description: "Whether to mark as spoiler",
default: false,
},
},
required: ["title", "content", "subreddit"],
};
export const REDDIT_COMMENT_RESPONSE_SCHEMA = {
type: "object",
properties: {
content: {
type: "string",
description: "Generated content for the reply",
},
id: {
type: "string",
description: "ID of parent post/comment being replied to",
},
subreddit: {
type: "string",
description: "Subreddit where the comment will be posted",
},
},
required: ["content", "id", "subreddit"],
};
export const REDDIT_MESSAGE_RESPONSE_SCHEMA = {
type: "object",
properties: {
recipient: {
type: "string",
description: "Username of the message recipient",
},
subject: {
type: "string",
description: "Subject line of the message (1-100 chars)",
minLength: 1,
maxLength: 100,
},
content: {
type: "string",
description: "Message content in markdown format (max 10000 chars)",
maxLength: 10000,
},
},
required: ["recipient", "subject", "content"],
};
export const REDDIT_SUGGEST_ACTION_RESPONSE_SCHEMA = {
type: "object",
properties: {
action: {
type: "string",
description: "Suggested action to take (e.g., 'create_post', 'reply', 'wait')",
},
subreddit: {
type: "string",
description: "Suggested subreddit for the action",
},
reasoning: {
type: "string",
description: "Explanation for why this action is suggested",
},
content: {
type: "string",
description: "Suggested content or topic for the action",
},
id: {
type: "string",
description: "ID of parent post/comment to reply to (if action is 'reply')",
},
},
required: ["action", "reasoning"],
};
export const REDDIT_ANALYSE_SUBREDDIT_RESPONSE_SCHEMA = {
type: "object",
properties: {
subreddit: {
type: "string",
description: "Name of the analyzed subreddit",
},
summary: {
type: "string",
description: "Overall summary of the subreddit's current state",
},
trendingTopics: {
type: "array",
description: "List of trending topics in the subreddit",
items: {
type: "string",
},
},
sentiment: {
type: "string",
enum: ["positive", "neutral", "negative", "mixed"],
description: "Overall sentiment of the subreddit",
},
recommendedActions: {
type: "array",
description: "Recommended actions based on the analysis",
items: {
type: "object",
properties: {
action: {
type: "string",
description: "Recommended action",
},
reason: {
type: "string",
description: "Reason for the recommendation",
},
},
required: ["action", "reason"],
},
},
},
required: ["subreddit", "summary", "trendingTopics", "sentiment", "recommendedActions"],
};
export const REDDIT_INSTRUCTIONS_RESPONSE_SCHEMA = {
type: "object",
properties: {
content: {
type: "string",
description: "Instructions for content generation and interaction with Reddit",
},
},
required: ["content"],
};
//# sourceMappingURL=sampling-schemas.js.map