Initial commit
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"method": "initialize",
|
||||
"params": {
|
||||
"protocolVersion": "2025-06-18",
|
||||
"capabilities": {},
|
||||
"clientInfo": {
|
||||
"name": "toolbox-executor",
|
||||
"version": "0.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"result": {
|
||||
"protocolVersion": "2025-06-18",
|
||||
"capabilities": {
|
||||
"tools": {
|
||||
"listChanged": true
|
||||
},
|
||||
"prompts": {
|
||||
"listChanged": true
|
||||
},
|
||||
"resources": {
|
||||
"listChanged": true
|
||||
}
|
||||
},
|
||||
"serverInfo": {
|
||||
"name": "exa-search-server",
|
||||
"title": "Exa",
|
||||
"version": "3.2.1",
|
||||
"websiteUrl": "<https://exa.ai>",
|
||||
"icons": [
|
||||
{
|
||||
"src": "<https://exa.ai/images/favicon-32x32.png>",
|
||||
"mimeType": "image/png",
|
||||
"sizes": [
|
||||
"32x32"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"method": "notifications/initialized"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 3,
|
||||
"method": "tools/call",
|
||||
"params": {
|
||||
"name": "web_search_exa",
|
||||
"arguments": {
|
||||
"query": "most popular useless github repository stars useless repo",
|
||||
"numResults": 10
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,183 @@
|
||||
# 관찰 로그 01 - exa / `web_search_exa`
|
||||
|
||||
- 출처: `MCP_툴_호출_통신_로그_(JSON-RPC) (1).pdf`
|
||||
- 원본 생성 시각: 2026-07-13 17:10:33 UTC
|
||||
- 성격: Agent Builder 솔루션에서 수행한 관찰용 실행 로그. 본 문서는 구현 계약이나 테스트 fixture가 아니다.
|
||||
|
||||
## 헤더 및 실행 메타데이터
|
||||
|
||||
| 항목 | 원본 기록 값 |
|
||||
|---|---|
|
||||
| transport type | `mcp-http` |
|
||||
| request_id | `045992d3-9683-4409-9613-e355a3eb05e1` |
|
||||
| tool_uid | `f44207bd-9afb-4bbe-88d7-1cadf9e2779b` |
|
||||
| Tool version | `2.0` |
|
||||
| 실행 시각 | 2026-07-13 16:53:16 UTC |
|
||||
| 결과 | ok · 1896ms · truncated=False |
|
||||
| JSON-RPC 프레임 수 | 5 |
|
||||
| lifecycle | `initialize → notifications/initialized → tools/call` |
|
||||
|
||||
### HTTP 헤더 기록 범위
|
||||
|
||||
원본 PDF에는 개별 HTTP request/response header 값이 기록되어 있지 않다. 원본 표의 `request_id`, `tool_uid`, `version`은 실행 메타데이터이며 HTTP header라고 단정하지 않는다.
|
||||
|
||||
원본 공통 안내에는 시크릿 및 인증 header가 로깅 전에 `[REDACTED]`로 마스킹되었다고 명시되어 있다. 따라서 Authorization, `Mcp-Session-Id` 등 실제 HTTP header 값은 이 문서에 포함하지 않는다.
|
||||
|
||||
## JSON-RPC 통신 전문
|
||||
|
||||
아래는 원본 PDF의 JSON-RPC 프레임을 순서대로 옮긴 전사본이다. 긴 `result.content[].text` 문자열은 PDF의 시각적 줄바꿈을 보존했으므로, 이 블록 전체를 기계 실행용 단일 JSON payload로 사용하지 않는다.
|
||||
|
||||
```text
|
||||
16:53:16 요청 → initialize
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"method": "initialize",
|
||||
"params": {
|
||||
"protocolVersion": "2025-06-18",
|
||||
"capabilities": {},
|
||||
"clientInfo": {
|
||||
"name": "toolbox-executor",
|
||||
"version": "0.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
16:53:16 ← 응답 initialize
|
||||
{
|
||||
"result": {
|
||||
"protocolVersion": "2025-06-18",
|
||||
"capabilities": {
|
||||
"tools": {
|
||||
"listChanged": true
|
||||
},
|
||||
"prompts": {
|
||||
"listChanged": true
|
||||
},
|
||||
"resources": {
|
||||
"listChanged": true
|
||||
}
|
||||
},
|
||||
"serverInfo": {
|
||||
"name": "exa-search-server",
|
||||
"title": "Exa",
|
||||
"version": "3.2.1",
|
||||
"websiteUrl": "<https://exa.ai>",
|
||||
"icons": [
|
||||
{
|
||||
"src": "<https://exa.ai/images/favicon-32x32.png>",
|
||||
"mimeType": "image/png",
|
||||
"sizes": [
|
||||
"32x32"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1
|
||||
}
|
||||
16:53:16 요청 → notifications/initialized
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"method": "notifications/initialized"
|
||||
}
|
||||
16:53:17 요청 → tools/call
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 3,
|
||||
"method": "tools/call",
|
||||
"params": {
|
||||
"name": "web_search_exa",
|
||||
"arguments": {
|
||||
"query": "most popular useless github repository stars useless repo",
|
||||
"numResults": 10.0
|
||||
}
|
||||
}
|
||||
}
|
||||
16:53:18 ← 응답 tools/call
|
||||
{
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Title: btahir/uselesshooks\nURL: <https://github.com/btahir/uselesshooks\nPublished:
|
||||
> N/A\nAuthor: N/A\nHighlights:\n# btahir/us\n...\n- Stars: 125\n- Forks: 9\n- Watchers: 125\n- Open
|
||||
issues: 3\n- License: MIT License\n- Default branch: main\n- Created: 2022-12-18T03:03:19Z\n\n---\n\n
|
||||
Title: Useless-Garbage-Institute/useless-garbage\nURL: <https://github.com/Useless-Garbage-Institute/
|
||||
useless-garbage\nPublished:> 2015-08-27T22:14:06.000Z\nAuthor: N/A\nHighlights:\n# Repository: Useles
|
||||
s-Garbage-Institute/useless-garbage\n...\nThe most profoundly useless javascript library ever invente
|
||||
d.\n...\n- Stars: 6\n- Forks: 1\n- Watchers: 6\n- Open issues: 1\n- Primary language: JavaScript\n- L
|
||||
anguages: JavaScript\n- Default branch: master\n- Created: 2015-08-27T22:14:06Z\n- Last push: 2015-09
|
||||
-01T01:14:37Z\n- Contributors: 2 (top: kriztynna, cgalbiati)\n...\nThe useless-garbage library is the
|
||||
only npm module that is guaranteed to have no redeemable functionality whatsoever. There are plenty o
|
||||
f helpful JavaScript libraries out there, and some that are of questionable utility, but none that ar
|
||||
e share our commitment to utter uselessness.\n\n---\n\nTitle: tomekw/whatever\nURL: <https://github.c
|
||||
om/tomekw/whatever\nPublished:> N/A\nAuthor: N/A\nHighlights:\n- Stars: 281\n- Forks: 115\n- Watcher
|
||||
s: 281\n- Open issues: 2\n- Default branch: master\n- Created: 2014-10-10T15:51:31Z\n\n---\n\nTitle:
|
||||
thecodersroom/the-button-that-does-nothing\nURL: <https://github.com/thecodersroom/the-button-that-do
|
||||
es-nothing\nPublished:> 2025-10-06T18:39:22.000Z\nAuthor: N/A\nHighlights:\n# Repository: thecodersro
|
||||
om/the-button-that-does-nothing\n...\nthat looks important\n...\nliterally does nothing\n...\n- Star
|
||||
s: 21\n- Forks: 67\n- Watchers: 0\n- Open issues: 24\n- Primary language: JavaScript\n- Languages: Ja
|
||||
vaScript (45.4%), CSS (41.9%), HTML (12.7%)\n- License: MIT License (MIT)\n- Topics: css, hacktoberfe
|
||||
st, hacktoberfest-accepted, html, javascript\n- Default branch: main\n- Homepage: <https://thecodersr
|
||||
oom.github.io/the-button-that-does-nothing/\n-> Created: 2025-10-06T18:39:22Z\n- Last push: 2025-11-0
|
||||
4T09:02:47Z\n- Contributors: 60 (top: AbdulKhadhar, AdZard69, Moksh-Mutreja, AshaSaini-033, akshith28
|
||||
55, kronpatel, ahmedrazabaloch, AhishRagav, Nl-T-lN, vanshikap21)\n...\nbuilt entirely with **\n\n---
|
||||
\n\nTitle: GitHub - niltok64/the-useless-collection: A collection of software that serve no purpose o
|
||||
ther than waste your time. Forking is encouraged!\nURL: <https://github.com/niltok64/the-useless-coll
|
||||
ection\nPublished:> 2021-11-30T09:35:25.000Z\nAuthor: niltok64\nHighlights:\n64/the\n...\nuseless-col
|
||||
lection\n...\n[\nStar\n1\n](<https://github.com/login?return_to=/niltok64/the-useless-collection>)\n*
|
||||
\nA collection of software that serve no purpose other than waste your time. Forking is encouraged!\n
|
||||
[niltok64.github.io/the-useless-collection/](<https://niltok64.github.io/the-useless-collection/>)\n#
|
||||
## License\n...\nstar\n](<https://github.com/niltok64/the-useless-collection/stargazers>) [\n0
|
||||
\n...\n://github.com/niltok64/the-useless-collection/forks)\n...\n://github.com/niltok64/the-useless-
|
||||
collection/branches) [\n...\n://github.com/niltok64/the-useless-collection/tags) [\nActivity
|
||||
\n...\n://github.\n...\n/nilt\n...\nthe-useless-collection\n...\n[\n**1**\nstar\n](<https://github.co
|
||||
m/niltok64/the-useless-collection/stargazers>)\n...\n### Watchers\n\n---\n\nTitle: GitHub - needless-
|
||||
org/needless: The JavaScript library you never asked for, never needed, and probably shouldn't use. B
|
||||
ut here we are!\nURL: <https://github.com/needless-org/needless\nPublished:> 2023-09-05T14:04:16.000Z
|
||||
\nAuthor: needless-org\nHighlights:\nGitHub - needless-org/needless: The JavaScript library you never
|
||||
asked for, never needed, and probably shouldn't use. But here we are!\n...\n[Skip to\n...\nneedless-o
|
||||
rg/needless)\n...\nhttps://github\n...\ncom/login?return_to=/needless-org/needless)\n...\n[\nStar\n1
|
||||
\n](<https://github.com/login?return_to=/needless-org/needless>)\n*\nThe JavaScript library you never
|
||||
asked for, never needed, and probably shouldn't use. But here we are!\n...\n[\n1\nstar\n](<https://gi
|
||||
thub.com/needless-org/needless/stargazers>) [\n0\nforks\n](<https://github.com/needless-org/needless/
|
||||
forks>) [\nBranches\n](<https://github.com/needless-org/needless/branches>) [\nTags\n](<https://githu
|
||||
b.com/needless-org/needless/tags>) [\nActivity\n](<https://github.com/needless-org/needless/activity
|
||||
>)\n[\n...\nneedless-\n...\nneedless)\n...\nThe JavaScript library you never asked for, never needed,
|
||||
and probably shouldn't use. But here we are!\n...\n\"My project is running too\n...\nwish there was
|
||||
\n...\nadd some completely unnecessary\n...\nno further!\n...\nIntroducing `needless-js`, the world's
|
||||
first and foremost pointless library. We bring the \"Why?\" into \"Why is this even a thing?\".\n## F
|
||||
eatures\n...\n1. **Absolutely Useless**: Doesn't fix any problems because it doesn't know what proble
|
||||
ms are.\n2. **Hilariously Redundant**: Why have one function when you can have ten doing the same thi
|
||||
ng?\n3. **Zero Dependencies**: Mainly because no other library wants to be associated with us.\n4. **
|
||||
Eco-friendly**: Uses 0% CPU because it does absolutely nothing.\n## Installation\n...\n[\n**1**\nstar
|
||||
\n...\n](<https://github.com/needless-org/needless/stargazers>)\n\n---\n\nTitle: GitHub - terremoth/a
|
||||
wesome-hilarious-repos\nURL: <https://github.com/terremoth/awesome-hilarious-repos\nPublished:> N/A\n
|
||||
Author: N/A\nHighlights:\nAwesome Hilarious Github Repositories. Awesome license. GitHub contributor
|
||||
s. List of all (?) available and funniest Github repos. Contribute if you know others!\n\n---\n\nTitl
|
||||
e: SuavePirate/Xamarin.Yeet\nURL: <https://github.com/SuavePirate/Xamarin.Yeet\nPublished:> 2020-02-2
|
||||
2T21:16:23.000Z\nAuthor: N/A\nHighlights:\n# Repository: SuavePirate/Xamarin.Yeet\n...\nAn absolutely
|
||||
useless tool to yeet your components off the screen.\n...\n- Stars: 2\n- Forks: 1\n- Watchers: 1\n- O
|
||||
pen issues: 0\n- Primary language: C#\n- Languages: C#\n- License: MIT License (MIT)\n- Default branc
|
||||
h: master\n- Created: 2020-02-22T21:16:23Z\n- Last push: 2020-02-22T21:31:11Z\n- Contributors: 1 (to
|
||||
p: SuavePirate)\n...\nAn absolutely useless tool to yeet your components off the screen.\n\n---\n\nTi
|
||||
tle: nico-garnier/useless-repo\nURL: <https://github.com/nico-garnier/useless-repo\nPublished:> 2020-
|
||||
12-03T11:49:46.000Z\nAuthor: N/A\nHighlights:\n# Repository: nico-garnier/useless-repo\n...\n- Stars:
|
||||
1\n- Forks: 0\n- Watchers: 2\n- Open issues: 0\n- Default branch: main\n- Created: 2020-12-03T11:49:4
|
||||
6Z\n- Last push: 2020-12-03T14:16:57Z\n- Contributors: 2 (top: nico-garnier, eilenilec)\n...\n# usele
|
||||
ss-repo\n...\nFor github stat on top collaborators only.\n\n---\n\nTitle: elierotenberg/useless | Git
|
||||
Hub | Open Source Insights\nURL: <https://deps.dev/project/github/elierotenberg%2fuseless\nPublished:
|
||||
> N/A\nAuthor: N/A\nHighlights:\nelierotenberg/useless | GitHub | Open Source Insights\n...\n# eliero
|
||||
tenberg/useless\n...\n33 stars",
|
||||
"_meta": {
|
||||
"searchTime": 1071.9
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"jsonrpc": "2.0",
|
||||
"id": 3
|
||||
}
|
||||
```
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"method": "initialize",
|
||||
"params": {
|
||||
"protocolVersion": "2025-06-18",
|
||||
"capabilities": {},
|
||||
"clientInfo": {
|
||||
"name": "toolbox-executor",
|
||||
"version": "0.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"result": {
|
||||
"protocolVersion": "2025-06-18",
|
||||
"capabilities": {
|
||||
"tools": {
|
||||
"listChanged": true
|
||||
},
|
||||
"prompts": {
|
||||
"listChanged": true
|
||||
},
|
||||
"resources": {
|
||||
"listChanged": true
|
||||
}
|
||||
},
|
||||
"serverInfo": {
|
||||
"name": "exa-search-server",
|
||||
"title": "Exa",
|
||||
"version": "3.2.1",
|
||||
"websiteUrl": "<https://exa.ai>",
|
||||
"icons": [
|
||||
{
|
||||
"src": "<https://exa.ai/images/favicon-32x32.png>",
|
||||
"mimeType": "image/png",
|
||||
"sizes": [
|
||||
"32x32"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"method": "notifications/initialized"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 3,
|
||||
"method": "tools/call",
|
||||
"params": {
|
||||
"name": "web_search_exa",
|
||||
"arguments": {
|
||||
"query": "site:github.com \"does nothing\" stars",
|
||||
"numResults": 10
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,176 @@
|
||||
# 관찰 로그 02 - exa / `web_search_exa`
|
||||
|
||||
- 출처: `MCP_툴_호출_통신_로그_(JSON-RPC) (1).pdf`
|
||||
- 원본 생성 시각: 2026-07-13 17:10:33 UTC
|
||||
- 성격: Agent Builder 솔루션에서 수행한 관찰용 실행 로그. 본 문서는 구현 계약이나 테스트 fixture가 아니다.
|
||||
|
||||
## 헤더 및 실행 메타데이터
|
||||
|
||||
| 항목 | 원본 기록 값 |
|
||||
|---|---|
|
||||
| transport type | `mcp-http` |
|
||||
| request_id | `536d9a7e-be3e-4847-8878-f71ae1d690ba` |
|
||||
| tool_uid | `f44207bd-9afb-4bbe-88d7-1cadf9e2779b` |
|
||||
| Tool version | `2.0` |
|
||||
| 실행 시각 | 2026-07-13 16:53:24 UTC |
|
||||
| 결과 | ok · 1768ms · truncated=False |
|
||||
| JSON-RPC 프레임 수 | 5 |
|
||||
| lifecycle | `initialize → notifications/initialized → tools/call` |
|
||||
|
||||
### HTTP 헤더 기록 범위
|
||||
|
||||
원본 PDF에는 개별 HTTP request/response header 값이 기록되어 있지 않다. 원본 표의 `request_id`, `tool_uid`, `version`은 실행 메타데이터이며 HTTP header라고 단정하지 않는다.
|
||||
|
||||
원본 공통 안내에는 시크릿 및 인증 header가 로깅 전에 `[REDACTED]`로 마스킹되었다고 명시되어 있다. 따라서 Authorization, `Mcp-Session-Id` 등 실제 HTTP header 값은 이 문서에 포함하지 않는다.
|
||||
|
||||
## JSON-RPC 통신 전문
|
||||
|
||||
아래는 원본 PDF의 JSON-RPC 프레임을 순서대로 옮긴 전사본이다. 긴 `result.content[].text` 문자열은 PDF의 시각적 줄바꿈을 보존했으므로, 이 블록 전체를 기계 실행용 단일 JSON payload로 사용하지 않는다.
|
||||
|
||||
```text
|
||||
16:53:24 요청 → initialize
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"method": "initialize",
|
||||
"params": {
|
||||
"protocolVersion": "2025-06-18",
|
||||
"capabilities": {},
|
||||
"clientInfo": {
|
||||
"name": "toolbox-executor",
|
||||
"version": "0.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
16:53:24 ← 응답 initialize
|
||||
{
|
||||
"result": {
|
||||
"protocolVersion": "2025-06-18",
|
||||
"capabilities": {
|
||||
"tools": {
|
||||
"listChanged": true
|
||||
},
|
||||
"prompts": {
|
||||
"listChanged": true
|
||||
},
|
||||
"resources": {
|
||||
"listChanged": true
|
||||
}
|
||||
},
|
||||
"serverInfo": {
|
||||
"name": "exa-search-server",
|
||||
"title": "Exa",
|
||||
"version": "3.2.1",
|
||||
"websiteUrl": "<https://exa.ai>",
|
||||
"icons": [
|
||||
{
|
||||
"src": "<https://exa.ai/images/favicon-32x32.png>",
|
||||
"mimeType": "image/png",
|
||||
"sizes": [
|
||||
"32x32"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1
|
||||
}
|
||||
16:53:24 요청 → notifications/initialized
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"method": "notifications/initialized"
|
||||
}
|
||||
16:53:24 요청 → tools/call
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 3,
|
||||
"method": "tools/call",
|
||||
"params": {
|
||||
"name": "web_search_exa",
|
||||
"arguments": {
|
||||
"query": "site:github.com \"does nothing\" stars",
|
||||
"numResults": 10.0
|
||||
}
|
||||
}
|
||||
}
|
||||
16:53:25 ← 응답 tools/call
|
||||
{
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Title: michaelb/do-nothing.vim\nURL: <https://github.com/michaelb/do-nothing.vim\nPu
|
||||
blished:> N/A\nAuthor: N/A\nHighlights:\nA vim plugin that does nothing. Because why not\n...\n- Star
|
||||
s: 121\n- Forks: 4\n- Watchers: 121\n- Open issues: 1\n- License: MIT License\n- Default branch: main
|
||||
\n- Created: 2021-07-06T07:35:05Z\n...\nThis plugin doesn't do anything.\n\n---\n\nTitle: silicakes/n
|
||||
ada-js\nURL: <https://github.com/silicakes/nada-js\nPublished:> N/A\nAuthor: N/A\nHighlights:\nA Libr
|
||||
ary that does nothing\n...\n- Stars: 32\n- Forks: 0\n- Watchers: 32\n- Open issues: 3\n- License: MIT
|
||||
License\n- Default branch: main\n- Created: 2019-05-29T22:52:59Z\n...\n### A Library that does nothin
|
||||
g in or for your project\n...\nNadaJS gives a single guarantee: Aside from taking space, it will do a
|
||||
bsolutely nothing.\nNo matter what kind of project, architecture or constraints you might have, nadaJ
|
||||
S always gets nothing done.\n\n---\n\nTitle: GitHub - azr/donothing: does nothing !\nURL: <https://gi
|
||||
thub.com/azr/donothing\nPublished:> 2012-10-25T16:10:49.000Z\nAuthor: azr\nHighlights:\nGitHub - az
|
||||
\n...\ndonothing: does nothing !\n...\n[\nStar\n1\n](<https://github.com/login?return_to=/azr/donothi
|
||||
ng>)\n...\n*\ndoes nothing !\n### License\n...\n[\n1\n...\nstar\n](<https://github.com/azr/donothing/
|
||||
stargazers>) [\n0\n...\n://github.com/azr/donothing/forks) [\n...\n://github.com/azr/donothing/branch
|
||||
es\n...\nTags\n](\n...\n://github.com/azr/donothing/tags\n...\n://github.com/azr/donothing/activity)
|
||||
\n...\n://github.com/\n...\n=/azr/donothing)\n...\ndoes nothing !\n...\n[\n**1**\nstar\n](<https://gi
|
||||
thub.com/azr/donothing/stargazers>)\n\n---\n\nTitle: imjakechapman/TheNothingApp\nURL: <https://githu
|
||||
b.com/imjakechapman/TheNothingApp\nPublished:> 2014-06-19T22:35:01.000Z\nAuthor: N/A\nHighlights:\nTh
|
||||
e app that does literally nothing.\n...\n- Stars: 19\n- Forks: 2\n- Watchers: 19\n- Open issues: 2\n-
|
||||
Primary language: Swift\n- Languages: Swift (71.3%), Java (28.7%)\n- Default branch: master\n- Homepa
|
||||
ge: thenothingapp.com\n- Created: 2014-06-19T22:35:01Z\n- Last push: 2015-06-22T22:07:41Z\n- Contribu
|
||||
tors: 2 (top: imjakechapman, thiagokimo)\n...\nThe app that does literally nothing, hackernews/design
|
||||
ernews/twitter approved best application for doing jack-diddley-squat.\n\n---\n\nTitle: thecodersroo
|
||||
m/the-button-that-does-nothing\nURL: <https://github.com/thecodersroom/the-button-that-does-nothing\n
|
||||
Published:> 2025-10-06T18:39:22.000Z\nAuthor: N/A\nHighlights:\n- Stars: 21\n- Forks: 67\n- Watchers:
|
||||
0\n- Open issues: 24\n- Primary language: JavaScript\n- Languages: JavaScript (45.4%), CSS (41.9%), H
|
||||
TML (12.7%)\n- License: MIT License (MIT)\n- Topics: css, hacktoberfest, hacktoberfest-accepted, htm
|
||||
l, javascript\n- Default branch: main\n- Homepage: <https://thecodersroom.github.io/the-button-that-d
|
||||
oes-nothing/\n-> Created: 2025-10-06T18:39:22Z\n- Last push: 2025-11-04T09:02:47Z\n- Contributors: 60
|
||||
(top: AbdulKhadhar, AdZard69, Moksh-Mutreja, AshaSaini-033, akshith2855, kronpatel, ahmedrazabaloch,
|
||||
AhishRagav, Nl-T-lN, vanshikap21)\n\n---\n\nTitle: seeschloss/nothing-to-see-here\nURL: <https://gith
|
||||
ub.com/seeschloss/nothing-to-see-here\nPublished:> N/A\nAuthor: N/A\nHighlights:\nAn NPM package whic
|
||||
h does nothing\n...\n- Stars: 1\n- Forks: 0\n- Watchers: 1\n- Open issues: 0\n- License: MIT License
|
||||
\n- Default branch: master\n- Created: 2015-01-21T08:32:44Z\n...\n## Usage ##\n\n var nothing = requi
|
||||
re('nothing-to-see-here');\n // Do nothing with nothing, since it does nothing at all.\n\n---\n\nTitl
|
||||
e: 10xly/do-nothing\nURL: <https://github.com/10xly/do-nothing\nPublished:> N/A\nAuthor: N/A\nHighlig
|
||||
hts:\n- Stars: 1\n- Forks: 0\n- Watchers: 1\n- Open issues: 0\n- Default branch: main\n- Created: 202
|
||||
4-09-06T19:20:09Z\n- Fork: yes\n...\nDo nothing.\n...\nIt's just another noop\n\n---\n\nTitle: Search
|
||||
code, repositories, users, issues, pull requests...\nURL: <https://github.com/techsiddhi/does-nothing
|
||||
\nPublished:> 2025-07-22T16:46:01.000Z\nAuthor: techsiddhi\nHighlights:\n.com/\n...\n](https://
|
||||
\n...\n* [Notifications](<https://github.com/login?return_to=/techsiddhi/does-nothing>)You must be si
|
||||
gned in to change notification settings\n* [Fork0](<https://github.com/login?return_to=/techsiddhi/do
|
||||
es-nothing>)\n* [Star1](<https://github.com/login?return_to=/techsiddhi/does-nothing>)\n...\n[1star]
|
||||
(<https://github.com/techsiddhi/does-nothing/stargazers>)[0forks](<https://github.com/techsiddhi/does
|
||||
-nothing/forks>)[Branches](<https://github.com/techsiddhi/does-nothing/branches>)[Tags](<https://gith
|
||||
ub.com/techsiddhi/does-nothing/tags>)[Activity](<https://github.com/techsiddhi/does-nothing/activity
|
||||
>)\n...\n[Star](<https://github.com/login?return_to=/techsiddhi/does-nothing>)\n...\n/activity)
|
||||
\n...\n[**1**star](<https://github.com/techsiddhi/does-nothing/stargazers>)\n### Watchers\n[**0**watc
|
||||
hing](<https://github.com/techsiddhi/does-nothing/watchers>)\n\n---\n\nTitle: NicusorN5/DoNothing\nUR
|
||||
L: <https://github.com/NicusorN5/DoNothing\nPublished:> 2023-08-19T15:20:52.000Z\nAuthor: N/A\nHighli
|
||||
ghts:\nThis does nothing. Literally nothing.\n...\n- Stars: 0\n- Forks: 0\n- Watchers: 0\n- Open issu
|
||||
es: 0\n- Primary language: Assembly\n- Languages: Assembly\n- License: MIT License (MIT)\n- Topics: a
|
||||
ssembly, nothing\n- Default branch: main\n- Created: 2023-08-19T15:20:52Z\n- Last push: 2023-08-19T1
|
||||
5:29:03Z\n- Contributors: 1 (top: NicusorN5)\n- Releases: 1\n- Latest release: release (2023-08-19T1
|
||||
5:29:03Z)\n- Archived: true\n...\nThis does nothing. Literally nothing.\n\n---\n\nTitle: README.md\nU
|
||||
RL: <https://github.com/torahappy/does_nothing/blob/master/README.md\nPublished:> N/A\nAuthor: N/A\nH
|
||||
ighlights:\n# does_nothing : A library that does nothing\n...\n- `function a()`\n - Description: Does
|
||||
some meaningless caluculation.\n - Input: nothing.\n - Output: nothing.\n...\n- `function b()`\n - De
|
||||
scription: Does some meaningless caluculation.\n - Input: nothing.\n - Output: nothing.\n...\n- `func
|
||||
tion c()`\n - Description: Does some meaningless caluculation.\n - Input: nothing.\n - Output: nothin
|
||||
g.\n...\nThough functions in this library are completely harmless and consume little cpu resource, no
|
||||
t telling users that the program sometimes does a meaningless calculation or computes inefficiently m
|
||||
ay result in a criminal prosecution as the program may be against users' intention. (in Japan)",
|
||||
"_meta": {
|
||||
"searchTime": 976.1
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"jsonrpc": "2.0",
|
||||
"id": 3
|
||||
}
|
||||
```
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"method": "initialize",
|
||||
"params": {
|
||||
"protocolVersion": "2025-06-18",
|
||||
"capabilities": {},
|
||||
"clientInfo": {
|
||||
"name": "toolbox-executor",
|
||||
"version": "0.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"result": {
|
||||
"protocolVersion": "2025-06-18",
|
||||
"capabilities": {
|
||||
"tools": {
|
||||
"listChanged": true
|
||||
},
|
||||
"prompts": {
|
||||
"listChanged": true
|
||||
},
|
||||
"resources": {
|
||||
"listChanged": true
|
||||
}
|
||||
},
|
||||
"serverInfo": {
|
||||
"name": "exa-search-server",
|
||||
"title": "Exa",
|
||||
"version": "3.2.1",
|
||||
"websiteUrl": "<https://exa.ai>",
|
||||
"icons": [
|
||||
{
|
||||
"src": "<https://exa.ai/images/favicon-32x32.png>",
|
||||
"mimeType": "image/png",
|
||||
"sizes": [
|
||||
"32x32"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"method": "notifications/initialized"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 3,
|
||||
"method": "tools/call",
|
||||
"params": {
|
||||
"name": "web_search_exa",
|
||||
"arguments": {
|
||||
"query": "site:github.com \"useless\" \"stars\" \"forks\" repository useless",
|
||||
"numResults": 10
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,178 @@
|
||||
# 관찰 로그 03 - exa / `web_search_exa`
|
||||
|
||||
- 출처: `MCP_툴_호출_통신_로그_(JSON-RPC) (1).pdf`
|
||||
- 원본 생성 시각: 2026-07-13 17:10:33 UTC
|
||||
- 성격: Agent Builder 솔루션에서 수행한 관찰용 실행 로그. 본 문서는 구현 계약이나 테스트 fixture가 아니다.
|
||||
|
||||
## 헤더 및 실행 메타데이터
|
||||
|
||||
| 항목 | 원본 기록 값 |
|
||||
|---|---|
|
||||
| transport type | `mcp-http` |
|
||||
| request_id | `5720da6c-68cc-44f3-8a1f-73088bddc23d` |
|
||||
| tool_uid | `f44207bd-9afb-4bbe-88d7-1cadf9e2779b` |
|
||||
| Tool version | `2.0` |
|
||||
| 실행 시각 | 2026-07-13 16:53:31 UTC |
|
||||
| 결과 | ok · 2070ms · truncated=False |
|
||||
| JSON-RPC 프레임 수 | 5 |
|
||||
| lifecycle | `initialize → notifications/initialized → tools/call` |
|
||||
|
||||
### HTTP 헤더 기록 범위
|
||||
|
||||
원본 PDF에는 개별 HTTP request/response header 값이 기록되어 있지 않다. 원본 표의 `request_id`, `tool_uid`, `version`은 실행 메타데이터이며 HTTP header라고 단정하지 않는다.
|
||||
|
||||
원본 공통 안내에는 시크릿 및 인증 header가 로깅 전에 `[REDACTED]`로 마스킹되었다고 명시되어 있다. 따라서 Authorization, `Mcp-Session-Id` 등 실제 HTTP header 값은 이 문서에 포함하지 않는다.
|
||||
|
||||
## JSON-RPC 통신 전문
|
||||
|
||||
아래는 원본 PDF의 JSON-RPC 프레임을 순서대로 옮긴 전사본이다. 긴 `result.content[].text` 문자열은 PDF의 시각적 줄바꿈을 보존했으므로, 이 블록 전체를 기계 실행용 단일 JSON payload로 사용하지 않는다.
|
||||
|
||||
```text
|
||||
16:53:31 요청 → initialize
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"method": "initialize",
|
||||
"params": {
|
||||
"protocolVersion": "2025-06-18",
|
||||
"capabilities": {},
|
||||
"clientInfo": {
|
||||
"name": "toolbox-executor",
|
||||
"version": "0.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
16:53:31 ← 응답 initialize
|
||||
{
|
||||
"result": {
|
||||
"protocolVersion": "2025-06-18",
|
||||
"capabilities": {
|
||||
"tools": {
|
||||
"listChanged": true
|
||||
},
|
||||
"prompts": {
|
||||
"listChanged": true
|
||||
},
|
||||
"resources": {
|
||||
"listChanged": true
|
||||
}
|
||||
},
|
||||
"serverInfo": {
|
||||
"name": "exa-search-server",
|
||||
"title": "Exa",
|
||||
"version": "3.2.1",
|
||||
"websiteUrl": "<https://exa.ai>",
|
||||
"icons": [
|
||||
{
|
||||
"src": "<https://exa.ai/images/favicon-32x32.png>",
|
||||
"mimeType": "image/png",
|
||||
"sizes": [
|
||||
"32x32"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1
|
||||
}
|
||||
16:53:31 요청 → notifications/initialized
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"method": "notifications/initialized"
|
||||
}
|
||||
16:53:31 요청 → tools/call
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 3,
|
||||
"method": "tools/call",
|
||||
"params": {
|
||||
"name": "web_search_exa",
|
||||
"arguments": {
|
||||
"query": "site:github.com \"useless\" \"stars\" \"forks\" repository useless",
|
||||
"numResults": 10.0
|
||||
}
|
||||
}
|
||||
}
|
||||
16:53:33 ← 응답 tools/call
|
||||
{
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Title: gianmarco-mameli/uselessrepo\nURL: <https://github.com/gianmarco-mameli/usele
|
||||
ssrepo\nPublished:> 2023-04-17T12:26:41.000Z\nAuthor: N/A\nHighlights:\n# Repository: gianmarco-mamel
|
||||
i/uselessrepo\n...\nThis useless repo is created for versioning a version\n...\n- Stars: 3\n- Forks:
|
||||
2\n- Watchers: 1\n- Open issues: 0\n- Default branch: main\n- Created: 2023-04-17T12:26:41Z\n- Last p
|
||||
ush: 2025-05-09T07:38:26Z\n- Contributors: 3 (top: gianmarco-mameli, s0ys4uc3, CrownKingClown)\n...\n
|
||||
# uselessrepo\n...\nThis useless repo is created for versioning a version\n\n---\n\nTitle: tinkerhub/
|
||||
useless_project_temp\nURL: <https://github.com/tinkerhub/useless_project_temp\nPublished:> N/A\nAutho
|
||||
r: N/A\nHighlights:\n# tinkerhub/useless_project_temp\n...\n- Stars: 15\n- Forks: 854\n- Watchers: 15
|
||||
\n- Open issues: 42\n- Default branch: main\n- Created: 2024-10-23T10:26:22Z\n\n---\n\nTitle: btahir/
|
||||
uselesshooks\nURL: <https://github.com/btahir/uselesshooks\nPublished:> N/A\nAuthor: N/A\nHighlight
|
||||
s:\n# btahir/uselesshooks\n...\nA Collection of U\n...\ness React Hooks to impress your coworkers
|
||||
\n...\n- Stars: 125\n- Forks: 9\n- Watchers: 125\n- Open issues: 3\n- License: MIT License\n- Default
|
||||
branch: main\n- Created: 2022-12-18T03:03:19Z\n\n---\n\nTitle: dorktoast/turd\nURL: <https://github.c
|
||||
om/dorktoast/turd\nPublished:> N/A\nAuthor: N/A\nHighlights:\nThe Useless Repo (Duh)\n...\n- Stars: 2
|
||||
\n- Forks: 0\n- Watchers: 2\n- Open issues: 0\n- Default branch: master\n- Created: 2023-08-22T08:54:
|
||||
42Z\n\n##\n...\n# TURD: The Useless Repo (Duh)\n...\nThis is the most useless repo on github. Inside
|
||||
this repo you will find scripts that make your soul hurt.\n\n---\n\nTitle: elierotenberg/useless\nUR
|
||||
L: <https://github.com/elierotenberg/useless\nPublished:> 2020-05-10T09:53:12.000Z\nAuthor: N/A\nHigh
|
||||
lights:\n# Repository: elierotenberg/useless\n...\nUseless React hooks\n...\n- Stars: 33\n- Forks: 1
|
||||
\n- Watchers: 1\n- Open issues: 6\n- Primary language: TypeScript\n- Languages: TypeScript (68.7%), J
|
||||
avaScript (31.3%)\n- Default branch: master\n- Created: 2020-05-10T09:53:12Z\n- Last push: 2022-03-26
|
||||
T16:38:59Z\n- Contributors: 1 (top: elierotenberg)\n...\nThis is a library of useless hooks for commo
|
||||
n non-use-cases.\n\n---\n\nTitle: GitHub - niltok64/the-useless-collection: A collection of software
|
||||
that serve no purpose other than waste your time. Forking is encouraged!\nURL: <https://github.com/ni
|
||||
ltok64/the-useless-collection\nPublished:> 2021-11-30T09:35:25.000Z\nAuthor: niltok64\nHighlights:\nG
|
||||
itHub - niltok64/the-useless-collection: A collection of software that serve no purpose other than wa
|
||||
ste your time. Forking is encouraged!\n[Skip to content](#start-of-content)\n## Navigation Menu\nTogg
|
||||
le navigation\n...\n](<https://github>.\n...\n/\n**\n[the-useless-collection](<https://github.com/nil
|
||||
tok64/the-useless-collection>)\n**\nPublic\n* [Notifications\n](<https://github.com/login?return_to=/
|
||||
niltok64/the-useless-collection>) You must be signed in to change notification settings\n* [Fork\n0
|
||||
\n...\n](<https://github.com/login?return_to=/niltok64/the-useless-collection>)\n*\n...\n[\nStar\n1
|
||||
\n](<https://github.com/login?return_to=/niltok64/the-useless-collection>)\n*\nA collection of softwa
|
||||
re that serve no purpose other than waste your time. Forking is encouraged!\n[niltok64.github.io/the-
|
||||
useless-collection/](<https://niltok64.github.io/the-useless-collection/>)\n### License\n...\nstar\n]
|
||||
(<https://github.com/niltok64/the-useless-collection/stargazers>) [\n0\n...\nforks\n](<https://githu
|
||||
b.com/niltok64/the-useless-collection/forks>) [\nBranches\n](<https://github.com/niltok64/the-useless
|
||||
-collection/branches>) [\nTags\n](<https://github.com/niltok64/the-useless-collection/tags>) [\nActiv
|
||||
ity\n](<https://github.com/niltok64/the-useless-collection/activity>)\n[\n...\nA collection of softwa
|
||||
re that serve no purpose other than waste your time. Forking is encouraged!\n...\nRequires Python 3.9
|
||||
for building.\n## Usage\n...\nTo use on Unix-based systems run \"pyinstaller main.\n...\n--onefile
|
||||
\"\n...\nline in any of the folders. You can also use the executables in\n...\n`automated-build/` fol
|
||||
der to build all the programs at once.\n## About\nA collection of software that serve no purpose othe
|
||||
r than waste your time. Forking is encouraged!\n[niltok64.github.io/the-useless-collection/](<http
|
||||
s://niltok64.github.io/the-useless-collection/>)\n...\nuseless-collection/activity)\n...\n[\n**1**\ns
|
||||
tar\n](<https://github.com/niltok64/the-useless-collection/stargazers>)\n### Watchers\n...\n[\n**1**
|
||||
\n...\ncom/niltok64/the-useless-collection/watchers)\n...\n[\n**0**\nforks\n](<https://github.com/nil
|
||||
tok64/the-useless-collection/forks>)\n[\n\n---\n\nTitle: erikvorhes/Useless-JS\nURL: <https://github.
|
||||
com/erikvorhes/Useless-JS\nPublished:> N/A\nAuthor: N/A\nHighlights:\n# erikvorhes/Useless-JS\n...\nS
|
||||
cripts that do nothing or overcomplicate things.\n...\n- Stars: 8\n- Forks: 3\n- Watchers: 8\n- Open
|
||||
issues: 1\n- License: Do What The F*ck You Want To Public License\n- Default branch: master\n- Create
|
||||
d: 2011-08-19T14:09:26Z\n\n##\n...\n# Useless JS\n...\nThis is a collection of scripts that don't rea
|
||||
lly do anything useful.\n...\nI've created a couple script files to get us started. Please add your o
|
||||
wn!\n\n---\n\nTitle: stac47/libuseless\nURL: <https://github.com/stac47/libuseless\nPublished:> N/A\n
|
||||
Author: stac47\nHighlights:\n# stac47/libuseless\n...\nThe most useless C++ library in the world
|
||||
\n...\n- Stars: 0\n- Forks: 0\n- Watchers: 0\n- Open issues: 0\n- License: GNU General Public License
|
||||
v3.0\n- Default branch: main\n- Created: 2021-01-29T13:34:01Z\n...\nThe most useless C++ library in t
|
||||
he world\n\n---\n\nTitle: jeku/useless\nURL: <https://github.com/jeku/useless\nPublished:> 2012-08-02
|
||||
T14:05:01.000Z\nAuthor: jeku\nHighlights:\n# Repository: jeku/useless\n\nquite useless\n...\n- Stars:
|
||||
1\n- Forks: 0\n- Watchers: 1\n- Open issues: 0\n- Default branch: master\n- Created: 2012-08-02T14:0
|
||||
5:01Z\n- Last push: 2012-08-02T14:05:01Z\n- Contributors: 1 (top: jeku)\n\n---\n\nTitle: barelyhuman/
|
||||
useless\nURL: <https://github.com/barelyhuman/useless\nPublished:> N/A\nAuthor: N/A\nHighlights:\n# b
|
||||
arelyhuman/useless\n...\nA set of useless utilities for javascript\n...\n- Stars: 6\n- Forks: 0\n- Wa
|
||||
tchers: 6\n- Open issues: 0\n- License: MIT License\n- Default branch: dev\n- Created: 2022-04-14T08:
|
||||
52:31Z\n\n## Languages\n...\n## README\n\n \n \n A set of useless utilities for javascript \n\n## Doc
|
||||
umentation\n...\nalready exist somewhere\n...\nand I'm just writing\n...\nto feel good about having m
|
||||
y own set of utilties.",
|
||||
"_meta": {
|
||||
"searchTime": 1216.7
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"jsonrpc": "2.0",
|
||||
"id": 3
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"method": "initialize",
|
||||
"params": {
|
||||
"protocolVersion": "2025-06-18",
|
||||
"capabilities": {},
|
||||
"clientInfo": {
|
||||
"name": "toolbox-executor",
|
||||
"version": "0.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"result": {
|
||||
"protocolVersion": "2025-06-18",
|
||||
"capabilities": {
|
||||
"tools": {
|
||||
"listChanged": true
|
||||
},
|
||||
"prompts": {
|
||||
"listChanged": true
|
||||
},
|
||||
"resources": {
|
||||
"listChanged": true
|
||||
},
|
||||
"logging": {}
|
||||
},
|
||||
"serverInfo": {
|
||||
"name": "searchapi",
|
||||
"title": "SearchAPI MCP Server",
|
||||
"version": "1.0.0",
|
||||
"websiteUrl": "<https://www.searchapi.io>"
|
||||
},
|
||||
"instructions": "Use the available tools to get real-time search results. Each tool corresponds to a specific use case, which may be a full search engine or a specialized feature of an engine."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 3,
|
||||
"method": "tools/call",
|
||||
"params": {
|
||||
"name": "youtube_search",
|
||||
"arguments": {
|
||||
"q": "EBS 공식 유튜브 채널",
|
||||
"gl": "KR"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 3,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "{\n \"search_metadata\": {\n \"id\": \"search_Z18NJlvnOYI636jLXk3BOm7g\",\n \"status\": \"Success\",\n \"created_at\": \"2026-07-13T17:02:43Z\",\n \"request_time_taken\": 1.12,\n \"parsing_time_taken\": 0.04,\n \"total_time_taken\": 1.15,\n \"request_url\": \"<https://www.youtube.com/results?search_query=EBS+%EA%B3%B5%EC%8B%9D+%EC%9C%A0%ED%8A%9C%EB%B8%8C+%EC%B1%84%EB%84%90&gl=KR&hl=en\>"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,174 @@
|
||||
# 관찰 로그 04 - searchapi / `youtube_search`
|
||||
|
||||
- 출처: `MCP_툴_호출_통신_로그_(JSON-RPC) (1).pdf`
|
||||
- 원본 생성 시각: 2026-07-13 17:10:33 UTC
|
||||
- 성격: Agent Builder 솔루션에서 수행한 관찰용 실행 로그. 본 문서는 구현 계약이나 테스트 fixture가 아니다.
|
||||
|
||||
## 헤더 및 실행 메타데이터
|
||||
|
||||
| 항목 | 원본 기록 값 |
|
||||
|---|---|
|
||||
| transport type | `mcp-http` |
|
||||
| request_id | `2ab618c9-8f2f-4163-ad11-d7118bc4d3ae` |
|
||||
| tool_uid | `28553975-d471-4b67-a210-61cc636d537d` |
|
||||
| Tool version | `2.0` |
|
||||
| 실행 시각 | 2026-07-13 17:02:42 UTC |
|
||||
| 결과 | ok · 2200ms · truncated=False |
|
||||
| JSON-RPC 프레임 수 | 4 |
|
||||
| lifecycle | `initialize → tools/call` |
|
||||
|
||||
### HTTP 헤더 기록 범위
|
||||
|
||||
원본 PDF에는 개별 HTTP request/response header 값이 기록되어 있지 않다. 원본 표의 `request_id`, `tool_uid`, `version`은 실행 메타데이터이며 HTTP header라고 단정하지 않는다.
|
||||
|
||||
원본 공통 안내에는 시크릿 및 인증 header가 로깅 전에 `[REDACTED]`로 마스킹되었다고 명시되어 있다. 따라서 Authorization, `Mcp-Session-Id` 등 실제 HTTP header 값은 이 문서에 포함하지 않는다.
|
||||
|
||||
## JSON-RPC 통신 전문
|
||||
|
||||
아래는 원본 PDF의 JSON-RPC 프레임을 순서대로 옮긴 전사본이다. 긴 `result.content[].text` 문자열은 PDF의 시각적 줄바꿈을 보존했으므로, 이 블록 전체를 기계 실행용 단일 JSON payload로 사용하지 않는다.
|
||||
|
||||
> 원본 PDF 자체가 `tools/call` 성공 응답의 끝부분을 `[+22537B]>`로 접어 표시한다. 따라서 이 문서는 PDF에 표시된 전문을 보존한 것이며, 접힌 22,537바이트의 원본 응답 데이터를 복원한 것은 아니다.
|
||||
|
||||
```text
|
||||
17:02:42 요청 → initialize
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"method": "initialize",
|
||||
"params": {
|
||||
"protocolVersion": "2025-06-18",
|
||||
"capabilities": {},
|
||||
"clientInfo": {
|
||||
"name": "toolbox-executor",
|
||||
"version": "0.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
17:02:42 ← 응답 initialize
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"result": {
|
||||
"protocolVersion": "2025-06-18",
|
||||
"capabilities": {
|
||||
"tools": {
|
||||
"listChanged": true
|
||||
},
|
||||
"prompts": {
|
||||
"listChanged": true
|
||||
},
|
||||
"resources": {
|
||||
"listChanged": true
|
||||
},
|
||||
"logging": {}
|
||||
},
|
||||
"serverInfo": {
|
||||
"name": "searchapi",
|
||||
"title": "SearchAPI MCP Server",
|
||||
"version": "1.0.0",
|
||||
"websiteUrl": "<https://www.searchapi.io>"
|
||||
},
|
||||
"instructions": "Use the available tools to get real-time search results. Each tool corresponds t
|
||||
o a specific use case, which may be a full search engine or a specialized feature of an engine."
|
||||
}
|
||||
}
|
||||
17:02:42 요청 → tools/call
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 3,
|
||||
"method": "tools/call",
|
||||
"params": {
|
||||
"name": "youtube_search",
|
||||
"arguments": {
|
||||
"q": "EBS 공식 유튜브 채널",
|
||||
"gl": "KR"
|
||||
}
|
||||
}
|
||||
}
|
||||
17:02:44 ← 응답 tools/call
|
||||
{"jsonrpc": "2.0", "id": 3, "result": {"content": [{"type": "text", "text": "{\n \"search_metadata
|
||||
\": {\n \"id\": \"search_Z18NJlvnOYI636jLXk3BOm7g\",\n \"status\": \"Success\",\n \"created_
|
||||
at\": \"2026-07-13T17:02:43Z\",\n \"request_time_taken\": 1.12,\n \"parsing_time_taken\": 0.0
|
||||
4,\n \"total_time_taken\": 1.15,\n \"request_url\": \"<https://www.youtube.com/results?search_q
|
||||
uery=EBS+%EA%B3%B5%EC%8B%9D+%EC%9C%A0%ED%8A%9C%EB%B8%8C+%EC%B1%84%EB%84%90&gl=KR&hl=en\>",\n \"htm
|
||||
l_url\": \"<https://www.searchapi.io/api/v1/searches/search_Z18NJlvnOYI636jLXk3BOm7g.html\>",\n
|
||||
\"json_url\": \"<https://www.searchapi.io/api/v1/searches/search_Z18NJlvnOYI636jLXk3BOm7g\>"\n },\n
|
||||
\"search_parameters\": {\n \"engine\": \"youtube\",\n \"q\": \"EBS 공식 유튜브 채널\",\n \"hl
|
||||
\": \"en\",\n \"gl\": \"KR\"\n },\n \"search_information\": {\n \"total_results\": 6938629\n
|
||||
},\n \"channels\": [\n {\n \"position\": 1,\n \"id\": \"UCFCtZJTuJhE18k8IXwmXTYQ\",\n
|
||||
\"title\": \"EBS Documentary\",\n \"link\": \"<https://www.youtube.com/@EBSDocumentary\>",\n
|
||||
\"description\": \"EBS offers a wide range of high-quality documentaries\\ndealing with subjects, suc
|
||||
h as knowledge, science, culture and others.\",\n \"is_verified\": true,\n \"subscribers\":
|
||||
5410000.0,\n \"thumbnail\": {\n \"static\": \"<https://yt3.ggpht.com/JCoc_tttfLn5nzycdjiS
|
||||
Fwv0gg-AKMIU2pyLw_13CzftUAchPNt4pJ8sHymyp_PcpF9KqSH-yIQ=s88-c-k-c0x00ffffff-no-rj-mo\>",\n \"r
|
||||
ich\": \"<https://yt3.ggpht.com/JCoc_tttfLn5nzycdjiSFwv0gg-AKMIU2pyLw_13CzftUAchPNt4pJ8sHymyp_PcpF9Kq
|
||||
SH-yIQ=s176-c-k-c0x00ffffff-no-rj-mo\>"\n }\n },\n {\n \"position\": 2,\n \"id
|
||||
\": \"UC-swf20n5xdKW0waeLpXPFQ\",\n \"title\": \"EBS\",\n \"link\": \"<https://www.youtube.
|
||||
com/@EBS_story\>",\n \"description\": \"EBS 공식 유튜브 채널 EBS 입니다. 언제나 여러분 곁엔 EBS가 그리
|
||||
고 언제나 EBS 곁엔 여러분이!\",\n \"subscribers\": 698000,\n \"thumbnail\": {\n \"stati
|
||||
c\": \"<https://yt3.ggpht.com/k1Z1iQQcdGXiByVcoCCGEwQtx803bSIMOhDOEmLwAexwVmkd6EeZNg__BcDIZ8B_5-jURP_
|
||||
9bg=s88-c-k-c0x00ffffff-no-rj-mo\>",\n \"rich\": \"<https://yt3.ggpht.com/k1Z1iQQcdGXiByVcoCCG
|
||||
EwQtx803bSIMOhDOEmLwAexwVmkd6EeZNg__BcDIZ8B_5-jURP_9bg=s176-c-k-c0x00ffffff-no-rj-mo\>"\n }\n
|
||||
},\n {\n \"position\": 4,\n \"id\": \"UCNjQBiTSdoj2tCQLBGXFksw\",\n \"title\": \"EB
|
||||
S 라디오 공식 채널\",\n \"link\": \"<https://www.youtube.com/@ebsradio\>",\n \"description\":
|
||||
\"책 읽어주는 라디오 + 외국어 라디오 (서울 수도권 104.5MHz) 한국교육방송 EBS 라디오 공식 운영 채널 입니다.\",\n
|
||||
\"subscribers\": 208000,\n \"thumbnail\": {\n \"static\": \"<https://yt3.googleuserconten
|
||||
t.com/ytc/AIdro_kWu2E5kc1Es_euuO3CNfx6R3-JBcB-eLaX1tAEd20yGew=s88-c-k-c0x00ffffff-no-rj-mo\>",\n
|
||||
\"rich\": \"<https://yt3.googleusercontent.com/ytc/AIdro_kWu2E5kc1Es_euuO3CNfx6R3-JBcB-eLaX1tAEd20yGe
|
||||
w=s176-c-k-c0x00ffffff-no-rj-mo\>"\n }\n },\n {\n \"position\": 6,\n \"id\": \"U
|
||||
CL44YGs2BXxtM4GZRH-wnrQ\",\n \"title\": \"EBS 지식채널e\",\n \"link\": \"<https://www.youtub
|
||||
e.com/@ebs_jisike\>",\n \"description\": \"우리 삶 속에서 잠깐, 5분 의미있는 순간으로 만드는 채널 공유하
|
||||
고 쌓여가는 지식 지식채널e 공식홈페이지 ...\",\n \"subscribers\": 147000,\n \"thumbnail\": {\n
|
||||
\"static\": \"<https://yt3.ggpht.com/_nK3ujZE56iSp3jf35MUMgCXIlFY9Gshi7VdHxNBoUNvT-8Jv1IgsGBlf3yNfR7J
|
||||
Qr-TxBScfg=s88-c-k-c0x00ffffff-no-rj-mo\>",\n \"rich\": \"<https://yt3.ggpht.com/_nK3ujZE56iSp
|
||||
3jf35MUMgCXIlFY9Gshi7VdHxNBoUNvT-8Jv1IgsGBlf3yNfR7JQr-TxBScfg=s176-c-k-c0x00ffffff-no-rj-mo\>"\n
|
||||
}\n },\n {\n \"position\": 8,\n \"id\": \"UCiFYUP4_TI70yCkkVJAlxoA\",\n \"title
|
||||
\": \"EBS Collection - Nature\",\n \"link\": \"<https://www.youtube.com/@ebs.science\>",\n
|
||||
\"description\": \"Chosen among more than 310,000 digitalized sources from EBS archive, EBS Collectio
|
||||
n gives you exclusive access to intriguing ...\",\n \"subscribers\": 1340000.0,\n \"thumbna
|
||||
il\": {\n \"static\": \"<https://yt3.googleusercontent.com/ytc/AIdro_m_xD2UFIA7qn07UeYtPAly1eP
|
||||
mRdspeKkwIqhgdLjflwM=s88-c-k-c0x00ffffff-no-rj-mo\>",\n \"rich\": \"<https://yt3.googleusercon
|
||||
tent.com/ytc/AIdro_m_xD2UFIA7qn07UeYtPAly1ePmRdspeKkwIqhgdLjflwM=s176-c-k-c0x00ffffff-no-rj-mo\>"\n
|
||||
}\n },\n {\n \"position\": 9,\n \"id\": \"UCl_tB4AqPkkxuYcJQHz6dMw\",\n \"title
|
||||
\": \"EBSCulture (EBS 교양)\",\n \"link\": \"<https://www.youtube.com/@EBSCulture\>",\n \"d
|
||||
escription\": \"Knowledge and information are becoming more important in all areas of today's societ
|
||||
y. EBS provides the information to make ...\",\n \"is_verified\": true,\n \"subscribers\":
|
||||
3020000.0,\n \"thumbnail\": {\n \"static\": \"<https://yt3.googleusercontent.com/ytc/AIdr
|
||||
o_nRo84wHIX9NhlqcW4f8Z4XptXjuHQD-xp3U_Dibgvxpn4=s88-c-k-c0x00ffffff-no-rj-mo\>",\n \"rich\":
|
||||
\"<https://yt3.googleusercontent.com/ytc/AIdro_nRo84wHIX9NhlqcW4f8Z4XptXjuHQD-xp3U_Dibgvxpn4=s176-c-k
|
||||
-c0x00ffffff-no-rj-mo\>"\n }\n },\n {\n \"position\": 10,\n \"id\": \"UCbeZPOz8u
|
||||
aHstEIbkqBOnGg\",\n \"title\": \"EBS 세계테마기행\",\n \"link\": \"<https://www.youtube.com/@
|
||||
ebstheme\>",\n \"description\": \"EBS 세계테마기행 공식 유튜브 채널 : <https://bit.ly/WorldTravel_EB
|
||||
S> (구독하기) ⛵세계를 여행하며 만나는 다양한 문화와 풍경!\",\n \"subscribers\": 162000,\n \"thumb
|
||||
nail\": {\n \"static\": \"<https://yt3.ggpht.com/s9JbLvTmFQuY-jP9R_2uRdkWz_YgEK3LYGLa5mdgldqhW
|
||||
npGrLJMVJCgQOL_VCfBqb-T7_IWgA=s88-c-k-c0x00ffffff-no-rj-mo\>",\n \"rich\": \"<https://yt3.ggph
|
||||
t.com/s9JbLvTmFQuY-jP9R_2uRdkWz_YgEK3LYGLa5mdgldqhWnpGrLJMVJCgQOL_VCfBqb-T7_IWgA=s176-c-k-c0x00ffffff
|
||||
-no-rj-mo\>"\n }\n },\n {\n \"position\": 11,\n \"id\": \"UCuuA38hvvuipqXFIP3BfL
|
||||
EA\",\n \"title\": \"EBS 지식\",\n \"link\": \"<https://www.youtube.com/@EBSKnowledge\>",\n
|
||||
\"description\": \"일상 속 지식 한 스푼! 각 분야의 전문가로 구성된 연사들의 강연까지! EBS의 고품격 지식·강연 프로
|
||||
그램 속 다양한 지식들을 큐레이팅 ...\",\n \"subscribers\": 298000,\n \"thumbnail\": {\n
|
||||
\"static\": \"<https://yt3.ggpht.com/E2hBI06f7Y9cWzG5EcQOzPGtLmhj_2IH3AGcqdTj4OI7Jiz8dUwtQOZyHA5kqIbG
|
||||
cxw9hr08dQ=s88-c-k-c0x00ffffff-no-rj-mo\>",\n \"rich\": \"<https://yt3.ggpht.com/E2hBI06f7Y9cW
|
||||
zG5EcQOzPGtLmhj_2IH3AGcqdTj4OI7Jiz8dUwtQOZyHA5kqIbGcxw9hr08dQ=s176-c-k-c0x00ffffff-no-rj-mo\>"\n
|
||||
}\n },\n {\n \"position\": 13,\n \"id\": \"UC2dDb6up1sIc-5geTvNtgHA\",\n \"title
|
||||
\": \"EBS 최고의 요리비결\",\n \"link\": \"<https://www.youtube.com/@EBS_best.cooking.secrets
|
||||
\>",\n \"description\": \"이 채널은 \\\"EBS 최고의 요리비결\\\" 공식 유튜브 채널입니다. EBS 최고의 요리비
|
||||
결은 지난 20년 동안 요리의 대가들이 출연하여 누구나 ...\",\n \"subscribers\": 104000,\n \"thumbnai
|
||||
l\": {\n \"static\": \"<https://yt3.googleusercontent.com/ytc/AIdro_mpiFqITW0McZ_0lY7r80ltEfM3
|
||||
hz5srioAQjdI0Jxizw=s88-c-k-c0x00ffffff-no-rj-mo\>",\n \"rich\": \"<https://yt3.googleuserconte
|
||||
nt.com/ytc/AIdro_mpiFqITW0McZ_0lY7r80ltEfM3hz5srioAQjdI0Jxizw=s176-c-k-c0x00ffffff-no-rj-mo\>"\n
|
||||
}\n },\n {\n \"position\": 14,\n \"id\": \"UC2DBKKki_gtyrrgT7HYU1CA\",\n \"title
|
||||
\": \"EBS 국제다큐영화제 공식 채널\",\n \"link\": \"<https://www.youtube.com/@EIDFOFFICIAL\>",\n
|
||||
\"description\": \"EBS국제다큐영화제 EIDF 공식 Youtube 채널입니다. This is the official YouTube EIDF Chan
|
||||
nel.\",\n \"subscribers\": 10100.0,\n \"thumbnail\": {\n \"static\": \"<https://yt3.
|
||||
googleusercontent.com/ytc/AIdro_nglXasX2K52bUhcEmGgttfBh7no_eQcDperw-a5E8sJ6U=s88-c-k-c0x00ffffff-no-
|
||||
rj-mo\>",\n \"rich\": \"<https://yt3.googleusercontent.com/ytc/AIdro_nglXasX2K52bUhcEmGgttfBh7
|
||||
no_eQcDperw-a5E8sJ6U=s176-c-k-c0x00ffffff-no-rj-mo\>"\n }\n },\n {\n \"position\": 1
|
||||
5,\n \"id\": \"UCN3RfsR18gsH8PLI6R6PYSQ\",\n \"title\": \"EBS뉴스\",\n \"link\": \"<ht
|
||||
tps://www.youtube.com/@EBSNewsG\>",\n \"description\": \"한국교육방송공사 EBS 뉴스 채널입니다. EBS 뉴
|
||||
스의 TV 방송시간은 월~금 낮 12시, 저녁 6시 10분입니다. Republic of Korea's ...\",\n \"subscribers\": 5
|
||||
9900.0,\n \"thumbnail\": {\n \"static\": \"<https://yt3.ggpht.com/J5dpRSp4ROHG5T0zUdZPvl2
|
||||
SrNXUyObe68rfiVid5i6XnN7zF43M36qekBESigoXqhN-hoA9dA=s88-c-k-c0x00ffffff-no-rj-mo\>",\n \"rich
|
||||
\": \"<https://yt3.ggpht.com/J5dpRSp4ROHG5T0zUdZPvl2SrNXUyObe68rfiVid5i6XnN7zF43M36qekBESigoXqhN-ho…
|
||||
[+22537B]>
|
||||
```
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"method": "initialize",
|
||||
"params": {
|
||||
"protocolVersion": "2025-06-18",
|
||||
"capabilities": {},
|
||||
"clientInfo": {
|
||||
"name": "toolbox-executor",
|
||||
"version": "0.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"result": {
|
||||
"protocolVersion": "2025-06-18",
|
||||
"capabilities": {
|
||||
"experimental": {},
|
||||
"logging": {},
|
||||
"prompts": {
|
||||
"listChanged": true
|
||||
},
|
||||
"resources": {
|
||||
"subscribe": false,
|
||||
"listChanged": true
|
||||
},
|
||||
"tools": {
|
||||
"listChanged": true
|
||||
},
|
||||
"extensions": {
|
||||
"io.modelcontextprotocol/ui": {}
|
||||
}
|
||||
},
|
||||
"serverInfo": {
|
||||
"name": "langconnect-rag-mcp",
|
||||
"version": "3.3.1"
|
||||
},
|
||||
"instructions": "This server provides RAG tools over document collections. Call list_collections() first: it returns collections you can access plus per-collection role and allowed_tools (derived from RBAC scopes). Use search_documents/search_documents_batch/search_documents_with_context for retrieval. Use list_documents to inspect documents. Use add_document_text to add text. Use delete_document/delete_collection only when allowed_tools includes them. Call get_user_info() to get the current user's email and display name."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"method": "notifications/initialized"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 3,
|
||||
"method": "tools/call",
|
||||
"params": {
|
||||
"name": "list_collections",
|
||||
"arguments": {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 3,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "{\"data\":[{\"name\":\"test\",\"id\":\"1caf198a-444b-4a89-a235-23e82bc3d68a\",\"metadata\":{\"description\":\"col\"},\"role\":0,\"allowed_tools\":[\"add_document_text\",\"delete_collection\",\"delete_document\",\"list_documents\",\"search_documents\",\"search_documents_batch\",\"search_documents_with_context\"],\"document_count\":2,\"chunk_count\":119}],\"success\":true,\"error\":null,\"request_id\":\"b3fa0787-dce3-449b-aff0-51a8d882e81d\"}"
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"data": [
|
||||
{
|
||||
"name": "test",
|
||||
"id": "1caf198a-444b-4a89-a235-23e82bc3d68a",
|
||||
"metadata": {
|
||||
"description": "col"
|
||||
},
|
||||
"role": 0,
|
||||
"allowed_tools": [
|
||||
"add_document_text",
|
||||
"delete_collection",
|
||||
"delete_document",
|
||||
"list_documents",
|
||||
"search_documents",
|
||||
"search_documents_batch",
|
||||
"search_documents_with_context"
|
||||
],
|
||||
"document_count": 2,
|
||||
"chunk_count": 119
|
||||
}
|
||||
],
|
||||
"success": true,
|
||||
"error": null,
|
||||
"request_id": "b3fa0787-dce3-449b-aff0-51a8d882e81d"
|
||||
},
|
||||
"isError": false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,140 @@
|
||||
# 관찰 로그 05 - langconnect / `list_collections`
|
||||
|
||||
- 출처: `MCP_툴_호출_통신_로그_(JSON-RPC) (1).pdf`
|
||||
- 원본 생성 시각: 2026-07-13 17:10:33 UTC
|
||||
- 성격: Agent Builder 솔루션에서 수행한 관찰용 실행 로그. 본 문서는 구현 계약이나 테스트 fixture가 아니다.
|
||||
|
||||
## 헤더 및 실행 메타데이터
|
||||
|
||||
| 항목 | 원본 기록 값 |
|
||||
|---|---|
|
||||
| transport type | `mcp-http` |
|
||||
| request_id | `ac3d3c06-882e-4416-be34-a20c5f91662f` |
|
||||
| tool_uid | `636e8cd0-3114-467f-b305-14e2c9cda744` |
|
||||
| Tool version | `1.0` |
|
||||
| 실행 시각 | 2026-07-13 17:08:46 UTC |
|
||||
| 결과 | ok · 346ms · truncated=False |
|
||||
| JSON-RPC 프레임 수 | 5 |
|
||||
| lifecycle | `initialize → notifications/initialized → tools/call` |
|
||||
|
||||
### HTTP 헤더 기록 범위
|
||||
|
||||
원본 PDF에는 개별 HTTP request/response header 값이 기록되어 있지 않다. 원본 표의 `request_id`, `tool_uid`, `version`은 실행 메타데이터이며 HTTP header라고 단정하지 않는다.
|
||||
|
||||
원본 공통 안내에는 시크릿 및 인증 header가 로깅 전에 `[REDACTED]`로 마스킹되었다고 명시되어 있다. 따라서 Authorization, `Mcp-Session-Id` 등 실제 HTTP header 값은 이 문서에 포함하지 않는다.
|
||||
|
||||
## JSON-RPC 통신 전문
|
||||
|
||||
아래는 원본 PDF의 JSON-RPC 프레임을 순서대로 옮긴 전사본이다. 긴 `result.content[].text` 문자열은 PDF의 시각적 줄바꿈을 보존했으므로, 이 블록 전체를 기계 실행용 단일 JSON payload로 사용하지 않는다.
|
||||
|
||||
```text
|
||||
17:08:46 요청 → initialize
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"method": "initialize",
|
||||
"params": {
|
||||
"protocolVersion": "2025-06-18",
|
||||
"capabilities": {},
|
||||
"clientInfo": {
|
||||
"name": "toolbox-executor",
|
||||
"version": "0.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
17:08:46 ← 응답 initialize
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"result": {
|
||||
"protocolVersion": "2025-06-18",
|
||||
"capabilities": {
|
||||
"experimental": {},
|
||||
"logging": {},
|
||||
"prompts": {
|
||||
"listChanged": true
|
||||
},
|
||||
"resources": {
|
||||
"subscribe": false,
|
||||
"listChanged": true
|
||||
},
|
||||
"tools": {
|
||||
"listChanged": true
|
||||
},
|
||||
"extensions": {
|
||||
"io.modelcontextprotocol/ui": {}
|
||||
}
|
||||
},
|
||||
"serverInfo": {
|
||||
"name": "langconnect-rag-mcp",
|
||||
"version": "3.3.1"
|
||||
},
|
||||
"instructions": "This server provides RAG tools over document collections. Call list_collections
|
||||
() first: it returns collections you can access plus per-collection role and allowed_tools (derived f
|
||||
rom RBAC scopes). Use search_documents/search_documents_batch/search_documents_with_context for retri
|
||||
eval. Use list_documents to inspect documents. Use add_document_text to add text. Use delete_documen
|
||||
t/delete_collection only when allowed_tools includes them. Call get_user_info() to get the current us
|
||||
er's email and display name."
|
||||
}
|
||||
}
|
||||
17:08:46 요청 → notifications/initialized
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"method": "notifications/initialized"
|
||||
}
|
||||
17:08:46 요청 → tools/call
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 3,
|
||||
"method": "tools/call",
|
||||
"params": {
|
||||
"name": "list_collections",
|
||||
"arguments": {}
|
||||
}
|
||||
}
|
||||
17:08:47 ← 응답 tools/call
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 3,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "{\"data\":[{\"name\":\"test\",\"id\":\"1caf198a-444b-4a89-a235-23e82bc3d68a\",\"meta
|
||||
data\":{\"description\":\"col\"},\"role\":0,\"allowed_tools\":[\"add_document_text\",\"delete_collect
|
||||
ion\",\"delete_document\",\"list_documents\",\"search_documents\",\"search_documents_batch\",\"search
|
||||
_documents_with_context\"],\"document_count\":2,\"chunk_count\":119}],\"success\":true,\"error\":nul
|
||||
l,\"request_id\":\"b3fa0787-dce3-449b-aff0-51a8d882e81d\"}"
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"data": [
|
||||
{
|
||||
"name": "test",
|
||||
"id": "1caf198a-444b-4a89-a235-23e82bc3d68a",
|
||||
"metadata": {
|
||||
"description": "col"
|
||||
},
|
||||
"role": 0,
|
||||
"allowed_tools": [
|
||||
"add_document_text",
|
||||
"delete_collection",
|
||||
"delete_document",
|
||||
"list_documents",
|
||||
"search_documents",
|
||||
"search_documents_batch",
|
||||
"search_documents_with_context"
|
||||
],
|
||||
"document_count": 2,
|
||||
"chunk_count": 119
|
||||
}
|
||||
],
|
||||
"success": true,
|
||||
"error": null,
|
||||
"request_id": "b3fa0787-dce3-449b-aff0-51a8d882e81d"
|
||||
},
|
||||
"isError": false
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
# Agent Builder Tool 호출 관찰 로그
|
||||
|
||||
- 출처: `MCP_툴_호출_통신_로그_(JSON-RPC) (1).pdf`
|
||||
- 원본 생성 시각: 2026-07-13 17:10:33 UTC
|
||||
- 목적: Agent Builder 솔루션이 실제 Tool을 호출하며 남긴 JSON-RPC 흐름을 샘플별로 보존
|
||||
- 성격: 관찰 기록. 현재 구현 계약, 목표 계약 또는 자동화 테스트 fixture로 사용하지 않는다.
|
||||
|
||||
원본 PDF는 시크릿 및 인증 header를 `[REDACTED]` 처리했다고 명시한다. 개별 HTTP request/response header 자체는 제공하지 않으므로, 각 문서에는 원본에 기록된 실행 메타데이터와 header 기록 범위를 분리해 표시한다.
|
||||
|
||||
| # | 서버 | Tool | 시각(UTC) | 프레임 | 결과 | 파일 |
|
||||
|---:|---|---|---|---:|---|---|
|
||||
| 1 | exa | `web_search_exa` | 16:53:16 | 5 | ok · 1896ms | [01](01-exa-web-search-exa-165316.md) |
|
||||
| 2 | exa | `web_search_exa` | 16:53:24 | 5 | ok · 1768ms | [02](02-exa-web-search-exa-165324.md) |
|
||||
| 3 | exa | `web_search_exa` | 16:53:31 | 5 | ok · 2070ms | [03](03-exa-web-search-exa-165331.md) |
|
||||
| 4 | searchapi | `youtube_search` | 17:02:42 | 4 | ok · 2200ms | [04](04-searchapi-youtube-search.md) |
|
||||
| 5 | langconnect | `list_collections` | 17:08:46 | 5 | ok · 346ms | [05](05-langconnect-list-collections.md) |
|
||||
|
||||
## JSON 프레임 파일
|
||||
|
||||
각 요청과 응답은 아래의 독립 JSON 파일로 분리했다. PDF의 시각적 줄바꿈을 제거한 뒤 JSON 문법 검증을 통과한 프레임만 원래 JSON-RPC 구조로 저장했다.
|
||||
|
||||
- [01 Exa](01-exa-web-search-exa-165316-initialize-request.json): `initialize` 요청·응답, `notifications/initialized`, `tools/call` 요청·응답
|
||||
- [02 Exa](02-exa-web-search-exa-165324-initialize-request.json): `initialize` 요청·응답, `notifications/initialized`, `tools/call` 요청·응답
|
||||
- [03 Exa](03-exa-web-search-exa-165331-initialize-request.json): `initialize` 요청·응답, `notifications/initialized`, `tools/call` 요청·응답
|
||||
- [04 SearchAPI](04-searchapi-youtube-search-initialize-request.json): `initialize` 요청·응답, `tools/call` 요청, `tools/call` 응답의 PDF 표시 전사본
|
||||
- [05 LangConnect](05-langconnect-list-collections-initialize-request.json): `initialize` 요청·응답, `notifications/initialized`, `tools/call` 요청·응답
|
||||
|
||||
SearchAPI의 `tools/call` 응답은 원본 PDF가 마지막 22,537바이트를 접어 표시하므로,
|
||||
[visible transcript](04-searchapi-youtube-search-tools-call-response-visible-transcript.txt)로 저장했다.
|
||||
끝부분이 없는 전사본이므로 실행 가능한 JSON-RPC 응답이나 `.json` fixture로 취급하지 않는다.
|
||||
Reference in New Issue
Block a user