@awarecorp/mcp-logger 0.0.2-dev.1 → 0.0.2-dev.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.md +16 -5
  2. package/dist/cli/cli.js +1 -84
  3. package/dist/cli/interceptor.js +1 -170
  4. package/dist/index.d.ts +110 -10
  5. package/dist/index.js +1 -21
  6. package/dist/sdk/index.js +1 -80
  7. package/dist/sdk/instrumentation.js +1 -99
  8. package/dist/sdk/types.d.ts +40 -11
  9. package/dist/shared/config.js +1 -18
  10. package/dist/shared/span-utils.js +1 -90
  11. package/dist/shared/telemetry.js +1 -91
  12. package/dist/shared/types.d.ts +6 -5
  13. package/package.json +11 -5
  14. package/dist/cli/cli.d.ts.map +0 -1
  15. package/dist/cli/cli.js.map +0 -1
  16. package/dist/cli/interceptor.d.ts.map +0 -1
  17. package/dist/cli/interceptor.js.map +0 -1
  18. package/dist/cli/types.d.ts.map +0 -1
  19. package/dist/cli/types.js +0 -5
  20. package/dist/cli/types.js.map +0 -1
  21. package/dist/index.d.ts.map +0 -1
  22. package/dist/index.js.map +0 -1
  23. package/dist/sdk/index.d.ts +0 -66
  24. package/dist/sdk/index.d.ts.map +0 -1
  25. package/dist/sdk/index.js.map +0 -1
  26. package/dist/sdk/instrumentation.d.ts +0 -11
  27. package/dist/sdk/instrumentation.d.ts.map +0 -1
  28. package/dist/sdk/instrumentation.js.map +0 -1
  29. package/dist/sdk/types.d.ts.map +0 -1
  30. package/dist/sdk/types.js +0 -5
  31. package/dist/sdk/types.js.map +0 -1
  32. package/dist/shared/config.d.ts +0 -18
  33. package/dist/shared/config.d.ts.map +0 -1
  34. package/dist/shared/config.js.map +0 -1
  35. package/dist/shared/span-utils.d.ts +0 -31
  36. package/dist/shared/span-utils.d.ts.map +0 -1
  37. package/dist/shared/span-utils.js.map +0 -1
  38. package/dist/shared/telemetry.d.ts +0 -25
  39. package/dist/shared/telemetry.d.ts.map +0 -1
  40. package/dist/shared/telemetry.js.map +0 -1
  41. package/dist/shared/types.d.ts.map +0 -1
  42. package/dist/shared/types.js +0 -5
  43. package/dist/shared/types.js.map +0 -1
@@ -1,37 +1,66 @@
1
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
+ import { ZodObject, ZodLiteral } from 'zod';
3
+ import { Request, Result } from '@modelcontextprotocol/sdk/types.js';
4
+
5
+ /**
6
+ * 공통 타입 정의
7
+ */
8
+ /**
9
+ * 텔레메트리 초기화 옵션
10
+ */
11
+ interface TelemetryOptions {
12
+ /**
13
+ * API Key for authentication (필수)
14
+ */
15
+ apiKey: string;
16
+ /**
17
+ * 서비스 이름 (옵션)
18
+ * 지정하지 않으면 자동으로 'mcp-server-{random}' 형식으로 생성
19
+ */
20
+ serviceName?: string;
21
+ /**
22
+ * 커스텀 OTLP 엔드포인트 (옵션)
23
+ * 기본값: CONFIG.ENDPOINT
24
+ */
25
+ endpoint?: string;
26
+ /**
27
+ * 디버그 로그 활성화 (옵션)
28
+ */
29
+ debug?: boolean;
30
+ }
31
+
1
32
  /**
2
33
  * SDK 타입 정의
3
34
  */
4
- import type { Server } from '@modelcontextprotocol/sdk/server/index.js';
5
- import type { ZodObject, ZodLiteral } from 'zod';
6
- import type { Request, Result } from '@modelcontextprotocol/sdk/types.js';
7
- import type { TelemetryOptions } from '../shared/types.js';
35
+
8
36
  /**
9
37
  * SDK 초기화 옵션 (TelemetryOptions 확장)
10
38
  */
11
- export interface SDKInitOptions extends TelemetryOptions {
39
+ interface SDKInitOptions extends TelemetryOptions {
12
40
  }
13
41
  /**
14
42
  * MCP JSON-RPC Request 타입
15
43
  */
16
- export type MCPRequest = Request;
44
+ type MCPRequest = Request;
17
45
  /**
18
46
  * MCP Result 타입
19
47
  */
20
- export type MCPResult = Result;
48
+ type MCPResult = Result;
21
49
  /**
22
50
  * MCP Request Schema 타입
23
51
  */
24
- export type MCPRequestSchema = ZodObject<{
52
+ type MCPRequestSchema = ZodObject<{
25
53
  method: ZodLiteral<string>;
26
54
  }>;
27
55
  /**
28
56
  * Request Handler Extra 타입
29
57
  */
30
- export interface RequestHandlerExtra {
58
+ interface RequestHandlerExtra {
31
59
  signal: AbortSignal;
32
60
  }
33
61
  /**
34
62
  * MCP Server 타입 (재export)
35
63
  */
36
- export type MCPServer = Server;
37
- //# sourceMappingURL=types.d.ts.map
64
+ type MCPServer = Server;
65
+
66
+ export type { MCPRequest, MCPRequestSchema, MCPResult, MCPServer, RequestHandlerExtra, SDKInitOptions };
@@ -1,18 +1 @@
1
- /**
2
- * 공통 설정 상수
3
- */
4
- export const CONFIG = {
5
- /**
6
- * OTLP Endpoint (하드코딩)
7
- */
8
- ENDPOINT: 'https://aware.mcypher.com/v1/traces',
9
- /**
10
- * SDK 버전
11
- */
12
- SDK_VERSION: '1.0.0',
13
- /**
14
- * 서비스 이름 접두사
15
- */
16
- SERVICE_NAME_PREFIX: 'mcp-server',
17
- };
18
- //# sourceMappingURL=config.js.map
1
+ const e={ENDPOINT:"https://aware.mcypher.com/v1/traces",SDK_VERSION:"1.0.0",SERVICE_NAME_PREFIX:"mcp-server"};export{e as CONFIG};
@@ -1,90 +1 @@
1
- /**
2
- * Span 생성 및 관리 유틸리티
3
- */
4
- import { SpanStatusCode, context, trace } from '@opentelemetry/api';
5
- /**
6
- * Span에 안전하게 속성 추가
7
- */
8
- export function setSpanAttributes(span, attributes) {
9
- for (const [key, value] of Object.entries(attributes)) {
10
- if (value !== undefined && value !== null) {
11
- span.setAttribute(key, value);
12
- }
13
- }
14
- }
15
- /**
16
- * Span에 이벤트 추가 (에러 핸들링 포함)
17
- */
18
- export function addSpanEvent(span, name, attributes, debug) {
19
- try {
20
- if (attributes) {
21
- span.addEvent(name, attributes);
22
- }
23
- else {
24
- span.addEvent(name);
25
- }
26
- }
27
- catch (err) {
28
- if (debug) {
29
- console.error('[MCP Logger] Failed to add span event:', err);
30
- }
31
- }
32
- }
33
- /**
34
- * Span에 에러 기록
35
- */
36
- export function recordSpanError(span, error, debug) {
37
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
38
- const errorName = error instanceof Error ? error.constructor.name : 'Error';
39
- if (error instanceof Error) {
40
- span.recordException(error);
41
- }
42
- span.setStatus({
43
- code: SpanStatusCode.ERROR,
44
- message: errorMessage,
45
- });
46
- span.setAttribute('error', true);
47
- span.setAttribute('error.type', errorName);
48
- span.setAttribute('error.message', errorMessage);
49
- if (debug) {
50
- console.error('[MCP Logger] Error recorded in span:', error);
51
- }
52
- }
53
- /**
54
- * Span을 성공으로 마크
55
- */
56
- export function markSpanSuccess(span) {
57
- span.setStatus({ code: SpanStatusCode.OK });
58
- }
59
- /**
60
- * 객체를 안전하게 JSON 문자열로 변환
61
- * (circular reference 처리)
62
- */
63
- export function safeStringify(obj, maxLength = 10000) {
64
- try {
65
- const str = JSON.stringify(obj);
66
- if (str.length > maxLength) {
67
- return str.slice(0, maxLength) + '... (truncated)';
68
- }
69
- return str;
70
- }
71
- catch (err) {
72
- return null;
73
- }
74
- }
75
- /**
76
- * Trace context 전파 헤더 생성
77
- */
78
- export function getTraceHeaders() {
79
- const headers = {};
80
- const ctx = context.active();
81
- const span = trace.getSpan(ctx);
82
- if (span) {
83
- const spanContext = span.spanContext();
84
- if (spanContext) {
85
- headers['traceparent'] = `00-${spanContext.traceId}-${spanContext.spanId}-01`;
86
- }
87
- }
88
- return headers;
89
- }
90
- //# sourceMappingURL=span-utils.js.map
1
+ import{SpanStatusCode as t,context as r,trace as e}from"@opentelemetry/api";function n(t,r){for(const[e,n]of Object.entries(r))null!=n&&t.setAttribute(e,n)}function o(t,r,e,n){try{e?t.addEvent(r,e):t.addEvent(r)}catch(t){n&&console.error("[MCP Logger] Failed to add span event:",t)}}function c(r,e,n){const o=e instanceof Error?e.message:"Unknown error",c=e instanceof Error?e.constructor.name:"Error";e instanceof Error&&r.recordException(e),r.setStatus({code:t.ERROR,message:o}),r.setAttribute("error",!0),r.setAttribute("error.type",c),r.setAttribute("error.message",o),n&&console.error("[MCP Logger] Error recorded in span:",e)}function s(r){r.setStatus({code:t.OK})}function a(t,r=1e4){try{const e=JSON.stringify(t);return e.length>r?e.slice(0,r)+"... (truncated)":e}catch(t){return null}}function i(){const t={},n=r.active(),o=e.getSpan(n);if(o){const r=o.spanContext();r&&(t.traceparent=`00-${r.traceId}-${r.spanId}-01`)}return t}export{o as addSpanEvent,i as getTraceHeaders,s as markSpanSuccess,c as recordSpanError,a as safeStringify,n as setSpanAttributes};
@@ -1,91 +1 @@
1
- /**
2
- * 공통 텔레메트리 레이어
3
- *
4
- * OpenTelemetry SDK 초기화 및 관리를 담당합니다.
5
- * SDK와 CLI 양쪽에서 공통으로 사용됩니다.
6
- */
7
- import { NodeSDK } from '@opentelemetry/sdk-node';
8
- import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
9
- import { Resource } from '@opentelemetry/resources';
10
- import { trace } from '@opentelemetry/api';
11
- import { CONFIG } from './config.js';
12
- let sdk = null;
13
- let tracer = null;
14
- let isInitialized = false;
15
- /**
16
- * OpenTelemetry SDK 초기화
17
- */
18
- export function initializeTelemetry(options) {
19
- if (isInitialized) {
20
- if (options.debug) {
21
- console.error('[MCP Logger] Telemetry already initialized, returning existing tracer');
22
- }
23
- return tracer;
24
- }
25
- // 서비스 이름 생성
26
- const serviceName = options.serviceName ||
27
- `${CONFIG.SERVICE_NAME_PREFIX}-${Math.random().toString(36).slice(2, 8)}`;
28
- if (options.debug) {
29
- console.error('[MCP Logger] Initializing telemetry...');
30
- console.error(`[MCP Logger] Endpoint: ${options.endpoint || CONFIG.ENDPOINT}`);
31
- console.error(`[MCP Logger] Service: ${serviceName}`);
32
- }
33
- // SDK 초기화
34
- sdk = new NodeSDK({
35
- resource: new Resource({
36
- ["service.name"]: serviceName,
37
- ["service.version"]: CONFIG.SDK_VERSION,
38
- }),
39
- traceExporter: new OTLPTraceExporter({
40
- url: options.endpoint || CONFIG.ENDPOINT,
41
- headers: {
42
- 'x-api-key': options.apiKey,
43
- },
44
- }),
45
- });
46
- sdk.start();
47
- tracer = trace.getTracer('mcp-logger', CONFIG.SDK_VERSION);
48
- isInitialized = true;
49
- if (options.debug) {
50
- console.error('[MCP Logger] Telemetry initialized successfully');
51
- }
52
- // 프로세스 종료 시 정리
53
- const cleanup = async () => {
54
- if (options.debug) {
55
- console.error('[MCP Logger] Shutting down telemetry...');
56
- }
57
- await shutdownTelemetry();
58
- };
59
- process.once('SIGTERM', cleanup);
60
- process.once('SIGINT', cleanup);
61
- return tracer;
62
- }
63
- /**
64
- * 현재 Tracer 반환
65
- */
66
- export function getTracer() {
67
- return tracer;
68
- }
69
- /**
70
- * 초기화 여부 확인
71
- */
72
- export function isInitializedTelemetry() {
73
- return isInitialized;
74
- }
75
- /**
76
- * Telemetry 종료
77
- */
78
- export async function shutdownTelemetry() {
79
- if (sdk) {
80
- try {
81
- await sdk.shutdown();
82
- sdk = null;
83
- tracer = null;
84
- isInitialized = false;
85
- }
86
- catch (err) {
87
- console.error('[MCP Logger] Error shutting down telemetry:', err);
88
- }
89
- }
90
- }
91
- //# sourceMappingURL=telemetry.js.map
1
+ import{NodeSDK as e}from"@opentelemetry/sdk-node";import{OTLPTraceExporter as r}from"@opentelemetry/exporter-trace-otlp-http";import{Resource as o}from"@opentelemetry/resources";import{trace as t}from"@opentelemetry/api";const n="https://aware.mcypher.com/v1/traces",i="1.0.0";let c=null,s=null,l=!1;function a(a){if(l)return a.debug&&console.error("[MCP Logger] Telemetry already initialized, returning existing tracer"),s;const g=a.serviceName||`mcp-server-${Math.random().toString(36).slice(2,8)}`;a.debug&&(console.error("[MCP Logger] Initializing telemetry..."),console.error(`[MCP Logger] Endpoint: ${a.endpoint||n}`),console.error(`[MCP Logger] Service: ${g}`)),c=new e({resource:new o({"service.name":g,"service.version":i}),traceExporter:new r({url:a.endpoint||n,headers:{"x-api-key":a.apiKey}})}),c.start(),s=t.getTracer("mcp-logger",i),l=!0,a.debug&&console.error("[MCP Logger] Telemetry initialized successfully");const p=async()=>{a.debug&&console.error("[MCP Logger] Shutting down telemetry..."),await u()};return process.once("SIGTERM",p),process.once("SIGINT",p),s}function g(){return s}function p(){return l}async function u(){if(c)try{await c.shutdown(),c=null,s=null,l=!1}catch(e){console.error("[MCP Logger] Error shutting down telemetry:",e)}}export{g as getTracer,a as initializeTelemetry,p as isInitializedTelemetry,u as shutdownTelemetry};
@@ -4,7 +4,7 @@
4
4
  /**
5
5
  * 텔레메트리 초기화 옵션
6
6
  */
7
- export interface TelemetryOptions {
7
+ interface TelemetryOptions {
8
8
  /**
9
9
  * API Key for authentication (필수)
10
10
  */
@@ -27,17 +27,17 @@ export interface TelemetryOptions {
27
27
  /**
28
28
  * Span 속성 인터페이스
29
29
  */
30
- export interface SpanAttributes {
30
+ interface SpanAttributes {
31
31
  [key: string]: string | number | boolean | undefined;
32
32
  }
33
33
  /**
34
34
  * MCP 메시지 방향
35
35
  */
36
- export type MessageDirection = 'request' | 'response';
36
+ type MessageDirection = 'request' | 'response';
37
37
  /**
38
38
  * JSON-RPC 메시지 타입
39
39
  */
40
- export interface JSONRPCMessage {
40
+ interface JSONRPCMessage {
41
41
  jsonrpc: '2.0';
42
42
  id?: string | number;
43
43
  method?: string;
@@ -49,4 +49,5 @@ export interface JSONRPCMessage {
49
49
  data?: any;
50
50
  };
51
51
  }
52
- //# sourceMappingURL=types.d.ts.map
52
+
53
+ export type { JSONRPCMessage, MessageDirection, SpanAttributes, TelemetryOptions };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@awarecorp/mcp-logger",
3
- "version": "0.0.2-dev.1",
3
+ "version": "0.0.2-dev.3",
4
4
  "description": "Unified MCP observability solution - SDK for code integration and CLI for zero-config wrapping",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -14,11 +14,12 @@
14
14
  "!dist/cli/**/*.d.ts"
15
15
  ],
16
16
  "scripts": {
17
- "build": "tsc",
17
+ "build": "npm run clean && rollup -c",
18
+ "build:readable": "npm run clean && tsc",
18
19
  "prepublishOnly": "npm run build",
19
20
  "clean": "rm -rf dist",
20
21
  "dev": "tsc --watch",
21
- "test:cli": "npm run build && node bin/mcp-logger.js --help",
22
+ "test:cli": "npm run build:readable && node bin/mcp-logger.js --help",
22
23
  "publish:stable": "npm run build && npm publish --access public",
23
24
  "publish:dev": "npm run build && npm publish --access public --tag dev",
24
25
  "version:patch": "npm version patch",
@@ -48,16 +49,21 @@
48
49
  }
49
50
  },
50
51
  "dependencies": {
51
- "@opentelemetry/sdk-node": "^0.52.0",
52
52
  "@opentelemetry/api": "^1.9.0",
53
53
  "@opentelemetry/exporter-trace-otlp-http": "^0.52.0",
54
54
  "@opentelemetry/resources": "^1.25.0",
55
+ "@opentelemetry/sdk-node": "^0.52.0",
55
56
  "@opentelemetry/semantic-conventions": "^1.25.0",
56
57
  "commander": "^11.1.0"
57
58
  },
58
59
  "devDependencies": {
59
- "@types/node": "^20.0.0",
60
60
  "@modelcontextprotocol/sdk": "^0.5.0",
61
+ "@rollup/plugin-terser": "^0.4.4",
62
+ "@rollup/plugin-typescript": "^12.1.4",
63
+ "@types/node": "^20.0.0",
64
+ "rollup": "^4.52.5",
65
+ "rollup-plugin-dts": "^6.2.3",
66
+ "tslib": "^2.8.1",
61
67
  "typescript": "^5.3.0"
62
68
  },
63
69
  "engines": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":";AAEA;;;;GAIG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"interceptor.d.ts","sourceRoot":"","sources":["../../src/cli/interceptor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AASnC,OAAO,KAAK,EAAkB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3E;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,KAAK,CAAU;gBAEX,SAAS,EAAE,gBAAgB,EAAE,KAAK,GAAE,OAAe;IAM/D,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI;IAwB3F;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA4BxB;;OAEG;YACW,YAAY;IA+E1B,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI;CAsBvD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"interceptor.js","sourceRoot":"","sources":["../../src/cli/interceptor.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,gBAAgB;CAEnD"}
package/dist/cli/types.js DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * CLI 타입 정의
3
- */
4
- export {};
5
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACzD,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGzD,+EAA+E;AAC/E,2BAA2B;AAC3B,mEAAmE;AACnE,+EAA+E"}
@@ -1,66 +0,0 @@
1
- /**
2
- * MCP Logger SDK
3
- *
4
- * MCP 서버에 자동 관측성(Observability)을 추가하는 SDK입니다.
5
- */
6
- import type { MCPServer, SDKInitOptions } from './types.js';
7
- /**
8
- * MCP 서버에 자동 계측을 추가합니다.
9
- *
10
- * 이 함수는 MCP 서버의 모든 요청/응답을 자동으로 로깅하고 추적합니다.
11
- * OpenTelemetry를 사용하여 traces를 수집하며, 설정된 엔드포인트로 전송합니다.
12
- *
13
- * @param server - MCP Server 인스턴스
14
- * @param options - 초기화 옵션
15
- *
16
- * @throws {Error} apiKey가 제공되지 않은 경우
17
- * @throws {Error} server 인스턴스가 제공되지 않은 경우
18
- *
19
- * @example
20
- * TypeScript 사용 예시:
21
- * ```typescript
22
- * import { Server } from '@modelcontextprotocol/sdk/server/index.js';
23
- * import { initMCPLogger } from '@awarecorp/mcp-logger';
24
- *
25
- * const server = new Server({ name: 'my-server', version: '1.0.0' }, {
26
- * capabilities: { tools: {} }
27
- * });
28
- *
29
- * initMCPLogger(server, {
30
- * apiKey: 'your-api-key',
31
- * serviceName: 'my-mcp-server',
32
- * debug: true,
33
- * });
34
- *
35
- * server.setRequestHandler('tools/call', async (request) => {
36
- * // 이 핸들러는 자동으로 로깅됩니다
37
- * return { result: 'success' };
38
- * });
39
- * ```
40
- *
41
- * @example
42
- * JavaScript 사용 예시:
43
- * ```javascript
44
- * const { Server } = require('@modelcontextprotocol/sdk/server/index.js');
45
- * const { initMCPLogger } = require('@awarecorp/mcp-logger');
46
- *
47
- * const server = new Server({ name: 'my-server', version: '1.0.0' }, {
48
- * capabilities: { tools: {} }
49
- * });
50
- *
51
- * initMCPLogger(server, {
52
- * apiKey: process.env.API_KEY,
53
- * serviceName: 'my-mcp-server',
54
- * });
55
- * ```
56
- */
57
- export declare function initMCPLogger(server: MCPServer, options: SDKInitOptions): void;
58
- /**
59
- * SDK를 종료하고 모든 pending traces를 flush합니다.
60
- *
61
- * 일반적으로 명시적으로 호출할 필요는 없습니다.
62
- * 프로세스 종료 시 자동으로 처리됩니다.
63
- */
64
- export { shutdownTelemetry as shutdown } from '../shared/telemetry.js';
65
- export type { SDKInitOptions, MCPServer } from './types.js';
66
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,cAAc,GACtB,IAAI,CAkBN;AAED;;;;;GAKG;AACH,OAAO,EAAE,iBAAiB,IAAI,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGvE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAqB,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAiB,EACjB,OAAuB;IAEvB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,2BAA2B;IAC3B,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAE7B,mBAAmB;IACnB,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAE3C,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,OAAO,EAAE,iBAAiB,IAAI,QAAQ,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1,11 +0,0 @@
1
- /**
2
- * MCP Server 자동 계측
3
- *
4
- * setRequestHandler를 오버라이드하여 모든 요청/응답을 자동으로 추적합니다.
5
- */
6
- import type { MCPServer } from './types.js';
7
- /**
8
- * MCP Server에 자동 계측 적용
9
- */
10
- export declare function instrumentMCPServer(server: MCPServer, debug?: boolean): void;
11
- //# sourceMappingURL=instrumentation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/sdk/instrumentation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,OAAO,KAAK,EACV,SAAS,EAKV,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,GAAE,OAAe,GAAG,IAAI,CAsHnF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../src/sdk/instrumentation.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sdk/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,gBAAgB;CAAG;AAE3D;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC;AAEjC;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAE/B;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC;IACvC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;CAC5B,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC"}
package/dist/sdk/types.js DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * SDK 타입 정의
3
- */
4
- export {};
5
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/sdk/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,18 +0,0 @@
1
- /**
2
- * 공통 설정 상수
3
- */
4
- export declare const CONFIG: {
5
- /**
6
- * OTLP Endpoint (하드코딩)
7
- */
8
- readonly ENDPOINT: "https://aware.mcypher.com/v1/traces";
9
- /**
10
- * SDK 버전
11
- */
12
- readonly SDK_VERSION: "1.0.0";
13
- /**
14
- * 서비스 이름 접두사
15
- */
16
- readonly SERVICE_NAME_PREFIX: "mcp-server";
17
- };
18
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,MAAM;IACjB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEK,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB;;OAEG;IACH,QAAQ,EAAE,qCAAqC;IAE/C;;OAEG;IACH,WAAW,EAAE,OAAO;IAEpB;;OAEG;IACH,mBAAmB,EAAE,YAAY;CACzB,CAAC"}
@@ -1,31 +0,0 @@
1
- /**
2
- * Span 생성 및 관리 유틸리티
3
- */
4
- import { Span } from '@opentelemetry/api';
5
- import type { SpanAttributes } from './types.js';
6
- /**
7
- * Span에 안전하게 속성 추가
8
- */
9
- export declare function setSpanAttributes(span: Span, attributes: SpanAttributes): void;
10
- /**
11
- * Span에 이벤트 추가 (에러 핸들링 포함)
12
- */
13
- export declare function addSpanEvent(span: Span, name: string, attributes?: SpanAttributes, debug?: boolean): void;
14
- /**
15
- * Span에 에러 기록
16
- */
17
- export declare function recordSpanError(span: Span, error: Error | unknown, debug?: boolean): void;
18
- /**
19
- * Span을 성공으로 마크
20
- */
21
- export declare function markSpanSuccess(span: Span): void;
22
- /**
23
- * 객체를 안전하게 JSON 문자열로 변환
24
- * (circular reference 처리)
25
- */
26
- export declare function safeStringify(obj: any, maxLength?: number): string | null;
27
- /**
28
- * Trace context 전파 헤더 생성
29
- */
30
- export declare function getTraceHeaders(): Record<string, string>;
31
- //# sourceMappingURL=span-utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"span-utils.d.ts","sourceRoot":"","sources":["../../src/shared/span-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAkC,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI,CAM9E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,cAAc,EAC3B,KAAK,CAAC,EAAE,OAAO,GACd,IAAI,CAYN;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,GAAG,OAAO,EACtB,KAAK,CAAC,EAAE,OAAO,GACd,IAAI,CAoBN;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAEhD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,GAAE,MAAc,GAAG,MAAM,GAAG,IAAI,CAUhF;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAaxD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"span-utils.js","sourceRoot":"","sources":["../../src/shared/span-utils.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- /**
2
- * 공통 텔레메트리 레이어
3
- *
4
- * OpenTelemetry SDK 초기화 및 관리를 담당합니다.
5
- * SDK와 CLI 양쪽에서 공통으로 사용됩니다.
6
- */
7
- import { Tracer } from '@opentelemetry/api';
8
- import type { TelemetryOptions } from './types.js';
9
- /**
10
- * OpenTelemetry SDK 초기화
11
- */
12
- export declare function initializeTelemetry(options: TelemetryOptions): Tracer;
13
- /**
14
- * 현재 Tracer 반환
15
- */
16
- export declare function getTracer(): Tracer | null;
17
- /**
18
- * 초기화 여부 확인
19
- */
20
- export declare function isInitializedTelemetry(): boolean;
21
- /**
22
- * Telemetry 종료
23
- */
24
- export declare function shutdownTelemetry(): Promise<void>;
25
- //# sourceMappingURL=telemetry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/shared/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAS,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMnD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAoDrE;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,GAAG,IAAI,CAEzC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAWvD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/shared/telemetry.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,UAAU,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,GAAG,CAAC;KACZ,CAAC;CACH"}