UNPKG

sometrend-mcp-server

Version:

TM2 기반의 썸트렌드(sometrend) MCP 서버 - 트렌드 분석 및 데이터 처리

338 lines (316 loc) 12.6 kB
/** * TM2 MCP 서버 애플리케이션 데이터 상수 */ import type { DataSource } from '../types/index.js'; /** * 서버 기본 정보 */ export const SERVER_BASE_INFO = { name: "썸트렌드(sometrend) MCP 서버", version: "1.0.0", // 기존 버전 유지 displayNames: [ "썸트렌드 MCP", "sometrend MCP", "TM2 MCP", "썸트렌드 MCP 서버", "sometrend MCP 서버", "TM2 MCP 서버" ], lastUpdated: "2024-06-25" }; /** * AI 모델을 위한 서버 상세 설명 */ export const AI_OPTIMIZED_SERVER_DESCRIPTION = "썸트렌드 MCP Server는 소셜 미디어 빅데이터 분석을 위한 전문 MCP(Model Context Protocol) 서버입니다.\n\n" + "## 핵심 역할\n" + "- **소셜 빅데이터 분석 전문가**: 7개 주요 소셜미디어 채널(블로그, 트위터/X, 뉴스, 인스타그램, 커뮤니티, 유튜브, 네이버블로그)의 대규모 데이터를 실시간 분석\n" + "- **한국어 특화 NLP 엔진**: 한국어 텍스트의 감성, 의미, 연관성을 정확하게 분석하는 자연어 처리 시스템\n" + "- **실시간 트렌드 모니터링**: 키워드 언급량, 감성 변화, 연관어 패턴의 시간대별 추이를 실시간으로 추적\n\n" + "## 제공 기능 (15개 전문 도구)\n" + "### 기본 분석 도구\n" + "- `getDocumentCounts`: 분석 대상 문서 수 조회 (데이터 규모 파악)\n" + "- `getKeywordMentions`: 키워드 언급량 추이 분석 (시간대별 트렌드)\n" + "- `keywordDocuments`: 키워드 관련 실제 문서 내용 조회 (원본 텍스트 분석)\n\n" + "### 연관어 분석 도구\n" + "- `getKeywordAssociations`: 키워드와 함께 언급되는 연관어 빈도 분석\n" + "- `getAssociationTransition`: 연관어의 시간대별 변화 추이 분석\n" + "- `getTopAssociationByPeriod`: 기간별 상위 연관어 랭킹 분석\n\n" + "### 감성 분석 도구\n" + "- `getKeywordSentiment`: 키워드에 대한 긍정/부정/중립 감성 비율 측정\n" + "- `getAssociationTransitionBySentiment`: 감성별 연관어 추이 분석\n" + "- `getTopSentimentByPeriod`: 기간별 감성 키워드 랭킹 분석\n\n" + "### 분류체계 관리 도구\n" + "- `getCategorySets`: 전체 분류체계 목록 조회\n" + "- `getCategorySetDetail`: 특정 분류체계 상세 정보 조회\n" + "- `getKeywordCategory`: 키워드의 분류 정보 조회\n" + "- `setKeywordCategories`: 여러 키워드 분류 일괄 설정\n\n" + "### 시스템 정보 도구\n" + "- `getServerInfo`: 서버 상태 및 성능 정보 조회\n" + "- `getSnsChannels`: 지원 소셜미디어 채널 정보 조회\n\n" + "## 전문 분석 시나리오 (8가지)\n" + "### 프롬프트 기반 통합 분석\n" + "- **브랜드 평판 분석**: 브랜드에 대한 소비자 인식과 평판 변화 추적\n" + "- **여론 분석**: 특정 이슈나 사건에 대한 대중의 의견과 반응 분석\n" + "- **위기 이슈 관리**: 부정적 이슈 발생 시 확산 패턴과 대응 전략 수립\n" + "- **마케팅 분석**: 마케팅 캠페인 효과 측정과 소비자 반응 분석\n" + "- **경쟁사 비교 분석**: 경쟁 브랜드 간 언급량, 감성, 이슈 비교\n" + "- **상품 분석**: 제품 출시 전후 반응, 기능별 만족도 분석\n" + "- **공공·금융 분석**: 정책, 금융상품에 대한 시민 반응 분석\n" + "- **종합 모니터링**: 브랜드 전반의 디지털 풋프린트 통합 모니터링\n\n" + "## 데이터 분류 체계\n" + "- **SM (Social Metrics)**: 일반적인 소셜미디어 분석을 위한 기본 분류 체계\n" + "- **TSN3 (Trend Seek 3.0)**: 트렌드 분석, 이슈 분석, 광고 마케팅에 특화된 고도화 분류 체계\n\n" + "## 성능 특징\n" + "- **고속 응답**: 평균 2-5초 내 분석 결과 제공\n" + "- **대용량 처리**: 최대 12개월 기간의 빅데이터 동시 분석\n" + "- **실시간 캐싱**: 자주 사용되는 분석 결과 캐싱으로 응답 속도 최적화\n" + "- **동시 처리**: 최대 10개 요청 동시 처리 지원\n\n" + "## 사용 방법\n" + "1. **단일 분석**: 개별 도구를 사용한 특정 지표 분석\n" + "2. **통합 분석**: 프롬프트를 통한 시나리오 기반 종합 분석\n" + "3. **순차 분석**: 여러 도구를 조합한 단계별 심화 분석\n\n" + "## AI 활용 팁\n" + "- 먼저 `getDocumentCounts`로 분석 가능한 데이터 규모를 확인하세요\n" + "- `getKeywordMentions`로 전체적인 트렌드를 파악한 후 세부 분석을 진행하세요\n" + "- 감성 분석 시 `getKeywordSentiment`와 `keywordDocuments`를 함께 사용하면 정량/정성 분석이 가능합니다\n" + "- 경쟁사 분석 시 동일한 기간과 조건으로 여러 브랜드를 비교 분석하세요\n" + "- 분류체계는 분석 목적에 따라 SM(일반) 또는 TSN3(마케팅 특화)를 선택하세요"; /** * 사용 가능한 데이터 소스 목록 */ export const AVAILABLE_DATA_SOURCES: DataSource[] = [ { source: "blog", name: "블로그", description: "네이버 블로그, 티스토리 등의 개인 블로그 콘텐츠", isActive: true }, { source: "twitter", name: "트위터/X", description: "트위터(X) 소셜 미디어 게시물", isActive: true }, { source: "news", name: "뉴스", description: "온라인 뉴스 기사 및 언론사 콘텐츠", isActive: true }, { source: "insta", name: "인스타그램", description: "인스타그램 게시물 및 스토리", isActive: true }, { source: "community", name: "커뮤니티", description: "온라인 커뮤니티 게시판 글", isActive: true }, { source: "youtube", name: "유튜브", description: "유튜브 동영상 제목, 설명, 댓글", isActive: true }, { source: "naver_blog", name: "네이버 블로그", description: "네이버 블로그 전용 콘텐츠", isActive: true } ]; /** * 사용 가능한 분류체계 목록 */ export const AVAILABLE_CATEGORY_SETS = [ { idx: 1, id: "SM", desc: "Social Metrics (일반적 분류 분석 체계)" }, { idx: 2, id: "TSN3", desc: "Trend Seek 3.0 (트렌드 분석, 이슈 분석, 광고 마케팅 특화 카테고리)" } ]; /** * 속도 제한 설정 */ export const RATE_LIMITS = { avgResponseTime: "2-5초", maxDataRange: "최대 12개월", maxConcurrentRequests: 10 }; /** * 보안 기능 */ export const SECURITY_FEATURES = [ "인증 기반 접근 제어", "요청 제한 (Rate Limiting)", "데이터 암호화", "로깅 및 모니터링" ]; /** * 지원 언어 */ export const SUPPORTED_LANGUAGES = [ "한국어", "영어", "일본어", "중국어" ]; /** * 서버 상세 정보 인터페이스 */ export interface ServerDetailInfo { basic: { name: string; version: string; description: string; lastUpdated: string; }; capabilities: { tools: number; prompts: number; resources: number; dataSources: number; categorySets: number; }; features: { realTimeProcessing: boolean; sentimentAnalysis: boolean; associationAnalysis: boolean; trendAnalysis: boolean; categoryClassification: boolean; multiLanguageSupport: string[]; caching: boolean; rateLimit: typeof RATE_LIMITS; }; technical: { architecture: string; dataProcessing: string; nlpEngine: string; security: string[]; performance: { avgResponseTime: string; maxDataRange: string; maxConcurrentRequests: number; }; }; support: { documentation: string; examples: boolean; troubleshooting: boolean; apiReference: boolean; }; } /** * 서버 상세 정보 생성 함수 */ export function generateServerDetailInfo(): ServerDetailInfo { return { basic: { ...SERVER_BASE_INFO, description: AI_OPTIMIZED_SERVER_DESCRIPTION }, capabilities: { tools: 15, prompts: 8, resources: 5, dataSources: AVAILABLE_DATA_SOURCES.length, categorySets: AVAILABLE_CATEGORY_SETS.length }, features: { realTimeProcessing: true, sentimentAnalysis: true, associationAnalysis: true, trendAnalysis: true, categoryClassification: true, multiLanguageSupport: [...SUPPORTED_LANGUAGES], caching: true, rateLimit: RATE_LIMITS }, technical: { architecture: "MCP (Model Context Protocol) 기반 서버", dataProcessing: "대용량 소셜 데이터 실시간 처리 엔진", nlpEngine: "한국어 특화 자연어 처리 알고리즘", security: [...SECURITY_FEATURES], performance: { avgResponseTime: RATE_LIMITS.avgResponseTime, maxDataRange: RATE_LIMITS.maxDataRange, maxConcurrentRequests: RATE_LIMITS.maxConcurrentRequests } }, support: { documentation: "포괄적인 API 문서 및 가이드 제공", examples: true, troubleshooting: true, apiReference: true } }; } /** * 서버 기능 상세 설명 */ export const SERVER_FEATURE_DETAILS = { coreFeatures: [ { category: "기본 분석", features: [ "문서 수 조회: 특정 조건에 따른 분석 대상 문서 수 확인", "키워드 언급량 분석: 소셜 미디어 채널별 키워드 언급량 추이 분석", "키워드 관련 문서 조회: 특정 키워드가 포함된 문서 목록 조회" ] }, { category: "연관어 분석", features: [ "키워드 연관어 분석: 특정 키워드와 함께 자주 언급되는 단어들의 패턴 파악", "연관어 추이 분석: 분류체계 기준으로 정리된 연관어 추이 분석", "기간별 상위 연관어 분석: 기간 단위별 Top N 연관어 분석" ] }, { category: "감성 분석", features: [ "감성 분석: 키워드에 대한 긍정/부정/중립적 반응 비율 측정", "연관어 감성 추이 분석: 감성 분류 기준으로 합산된 연관어 추이 분석", "기간별 상위 감성 분석: 기간별 감성 기준 연관어 분석" ] }, { category: "분류체계 관리", features: [ "분류체계 관리: 전체 분류체계 목록 및 특정 분류체계 정보 조회", "키워드 분류 정보: 특정 키워드의 분류 정보 조회 및 여러 키워드 배치 처리" ] } ], technicalFeatures: [ { name: "실시간 데이터 처리", description: "대용량 소셜 데이터를 신속하게 처리하는 고성능 아키텍처", benefits: ["빠른 응답 시간", "실시간 트렌드 파악", "대용량 데이터 처리"] }, { name: "확장 가능한 API 구조", description: "다양한 분석 요구사항에 맞춤형 대응 가능", benefits: ["모듈화된 설계", "유연한 확장", "표준화된 인터페이스"] }, { name: "정교한 자연어 처리", description: "한국어 특화 텍스트 분석 알고리즘 적용", benefits: ["높은 분석 정확도", "한국어 특화", "다양한 표현 인식"] }, { name: "분류체계 기반 분석", description: "체계적인 카테고리 분류를 통한 정밀 분석", benefits: ["구조화된 분석", "일관된 분류", "비교 분석 가능"] } ] };