sometrend-mcp-server
Version:
TM2 기반의 썸트렌드(sometrend) MCP 서버 - 트렌드 분석 및 데이터 처리
338 lines (316 loc) • 12.6 kB
text/typescript
/**
* 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: ["구조화된 분석", "일관된 분류", "비교 분석 가능"]
}
]
};