Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions .gitbook/docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -1069,6 +1069,47 @@
"group": "INJECTIVE",
"pages": [
"ko/index",
{
"group": "개발자",
"icon": "laptop-code",
"expanded": false,
"pages": [
"ko/developers/index",
"ko/developers/convert-addresses",
"ko/developers/network-information",
{
"group": "AI 개발",
"pages": [
"ko/developers/ai/mcp"
]
},
{
"group": "injectived",
"pages": [
"ko/developers/injectived/index",
"ko/developers/injectived/install",
"ko/developers/injectived/use",
"ko/developers/injectived/advanced",
"ko/developers/testnet-proposals"
]
},
{
"group": "개념",
"pages": [
"ko/developers/concepts/index",
"ko/developers/concepts/sentry-node",
"ko/developers/concepts/indexer-api",
"ko/developers/concepts/trading-account",
"ko/developers/concepts/grpc-protobuf",
"ko/developers/concepts/token-factory",
"ko/developers/concepts/calculation-min-price-tick-size",
"ko/developers/concepts/calculation-min-quantity-tick-size",
"ko/developers/concepts/cosmjs-support",
"ko/developers/concepts/networks"
]
}
]
},
{
"group": "EVM 개발자",
"icon": "rectangle-code",
Expand Down
158 changes: 158 additions & 0 deletions .gitbook/ko/developers/ai/mcp.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
---
title: MCP Server
description: Model Context Protocol을 사용하여 AI 어시스턴트를 Injective 문서에 연결
---

Injective 문서는 Claude, Cursor 및 기타 MCP 호환 도구와 같은 AI 어시스턴트가 Injective 문서에서 **정보를 검색하고 조회**할 수 있게 해주는 Model Context Protocol (MCP) 서버를 제공합니다.

이것은 문서 검색에만 유용한 것이 아니라, 다른 MCP 서버 및 AI 에이전트와 **함께 사용**할 때도 강력합니다.
예를 들어, Cursor와 같은 에이전트 개발 도구를 연결하여 이 MCP 서버를 사용함으로써 LLM의 범용 소프트웨어 작성 능력에 **Injective 특화 지식을 추가**하여 Injective 애플리케이션을 코딩할 수 있습니다.
개발 도구를 구성하는 방법에 대한 자세한 내용은 아래에 포함되어 있습니다.

## MCP란 무엇인가요?

[MCP](https://modelcontextprotocol.io/introduction)는 AI 어시스턴트가 외부 데이터 소스 및 도구에 연결할 수 있게 해주는 **오픈 표준**입니다.
AI 어시스턴트는 학습 데이터에만 의존하는 대신 MCP를 사용하여 문서에서 직접 실시간의 권위 있는 정보에 액세스할 수 있습니다.

## 왜 Injective MCP 서버를 사용해야 하나요?

AI 어시스턴트를 Injective MCP 서버에 연결하면 다음이 가능합니다:

- 전체 Injective 문서 검색
- 코드 예제, API 레퍼런스 및 가이드 찾기
- 최신 정보로 질문에 답변
- 관련 문서 페이지에 대한 직접 링크 제공

이것은 특히 Injective에서 개발할 때 유용합니다. AI가 특정 사용 사례에 맞는 적절한 문서를 찾는 데 도움을 줄 수 있습니다.

## MCP 서버 세부 정보

| 속성 | 값 |
|----------|-------|
| Endpoint | `https://docs.injective.network/mcp` |
| Transport | HTTP (Streamable HTTP) |
| 사용 가능한 도구 | `SearchInjectiveDocs` |

## MCP 서버에 연결하기

<Tabs>
<Tab title="모든 MCP 클라이언트">
MCP 호환 클라이언트의 경우 endpoint URL을 직접 사용하세요:

```
https://docs.injective.network/mcp
```

서버는 대부분의 최신 MCP 클라이언트에서 지원하는 Streamable HTTP transport를 사용합니다.
</Tab>
<Tab title="Cursor">
Cursor 설정에서 MCP 서버를 추가하세요:

1. Cursor 설정 열기
2. **Features** → **MCP Servers**로 이동
3. **Add new MCP server** 클릭
4. 다음을 입력하세요:
- **Name**: `injective-docs`
- **Type**: `command`
- **Command**: `npx mcp-remote https://docs.injective.network/mcp`
</Tab>
<Tab title="Claude Desktop">
Claude Desktop 구성 파일에 다음을 추가하세요:

<Tabs>
<Tab title="macOS">
`~/Library/Application Support/Claude/claude_desktop_config.json` 편집:

```json
{
"mcpServers": {
"injective-docs": {
"command": "npx",
"args": [
"mcp-remote",
"https://docs.injective.network/mcp"
]
}
}
}
```
</Tab>
<Tab title="Windows">
`%APPDATA%\Claude\claude_desktop_config.json` 편집:

```json
{
"mcpServers": {
"injective-docs": {
"command": "npx",
"args": [
"mcp-remote",
"https://docs.injective.network/mcp"
]
}
}
}
```
</Tab>
</Tabs>

구성을 저장한 후 Claude Desktop을 다시 시작하세요. Injective Docs 도구가 Claude의 사용 가능한 도구에 나타납니다.
</Tab>
</Tabs>

## MCP 서버 사용하기

연결되면 AI 어시스턴트에게 Injective에 대해 질문할 수 있습니다.
어시스턴트는 자동으로 `SearchInjectiveDocs` 도구를 사용하여 관련 정보를 찾습니다.

**예시 프롬프트:**

- "Injective에서 지갑을 어떻게 만드나요?"
- "CosmWasm 스마트 컨트랙트를 배포하는 방법을 보여주세요"
- "Injective 메인넷의 네트워크 엔드포인트는 무엇인가요?"
- "Token Factory 모듈을 어떻게 사용하나요?"
- "Injective에서 마진 거래가 어떻게 작동하는지 설명해주세요"

AI가 문서를 검색하고 관련 페이지에 대한 링크와 함께 답변을 제공합니다.

## MCP Tool 레퍼런스

### `SearchInjectiveDocs`

Injective 문서 전체를 검색하여 관련 정보를 찾습니다.

**파라미터:**

| 파라미터 | 타입 | 필수 | 설명 |
|-----------|------|----------|-------------|
| `query` | string | 예 | 관련 문서를 찾기 위한 검색 쿼리 |

**반환값:**

문서 페이지에 대한 제목과 직접 링크가 포함된 컨텍스트 콘텐츠.
이 도구는 전체 Injective 문서 코퍼스에서 의미론적 검색을 수행하여 페이지 콘텐츠, 제목 및 코드 예제와 쿼리를 매칭합니다.
결과는 관련성에 따라 순위가 매겨지고 쿼리에 가장 적합한 답변이 되는 추출된 스니펫과 함께 반환되며, 추가 읽기를 위한 소스 URL도 함께 제공됩니다.

**예시:**

요청:
```json
{
"tool": "SearchInjectiveDocs",
"arguments": {
"query": "token factory를 사용하여 토큰을 만드는 방법"
}
}
```

응답:
```json
{
"content": [
{
"type": "text",
"text": "# Token Factory\n\nToken Factory 모듈을 사용하면 Injective에서 커스텀 토큰을 생성하고 관리할 수 있습니다...\n\n## 토큰 생성하기\n\n새 토큰을 생성하려면 `tokenfactory/create-denom` 메시지를 사용하세요...\n\nSource: https://docs.injective.network/developers/concepts/token-factory"
}
]
}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
title: 마켓 최소 가격 틱 사이즈 계산
---

# 마켓 최소 가격 틱 사이즈

주문 가격에 대한 최소 마켓 가격 틱 사이즈 - 마켓의 minPriceTickSize가 `0.001`이고 가격이 `0.0011`인 주문 제출은 거부됩니다.

현물 및 호가 마켓 가격 틱 사이즈를 계산하는 공식은 다르다는 점에 유의하세요.

### 현물 마켓

1. UI 사람이 읽을 수 있는 형식에서 체인 형식으로:
18개의 base decimals와 6개의 quote decimals를 가진 INJ/USDT 마켓을 예로 들어, 값을 체인 형식으로 변환하는 방법은 다음과 같습니다:

```ts
import { toChainFormat } from "@injectivelabs/utils";

const value = toChainFormat(value, quoteDecimals - baseDecimals).toFixed();
```

2. 체인 형식에서 UI 사람이 읽을 수 있는 형식으로:
18개의 base decimals와 6개의 quote decimals를 가진 INJ/USDT 마켓을 예로 들어, 값을 UI 사람이 읽을 수 있는 형식으로 변환하는 방법은 다음과 같습니다:

```ts
import { toHumanReadable } from "@injectivelabs/utils";

const value = toHumanReadable(value, quoteDecimals - baseDecimals).toFixed();
```

### 파생상품 마켓

1. UI 사람이 읽을 수 있는 형식에서 체인 형식으로:
6개의 quote decimals를 가진 INJ/USDT perp 마켓을 예로 들어, 값을 체인 형식으로 변환하는 방법은 다음과 같습니다:

```ts
import { toChainFormat } from "@injectivelabs/utils";

const value = toChainFormat(value, -quoteDecimals).toFixed();
```

2. 체인 형식에서 UI 사람이 읽을 수 있는 형식으로:
6개의 quote decimals를 가진 INJ/USDT perp 마켓을 예로 들어, 값을 UI 사람이 읽을 수 있는 형식으로 변환하는 방법은 다음과 같습니다:

```ts
import { toHumanReadable } from "@injectivelabs/utils";

const value = toHumanReadable(value, quoteDecimals).toFixed();
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
title: 마켓 최소 수량 틱 사이즈 계산
---

주문 가격에 대한 최소 마켓 수량 틱 사이즈 - 마켓의 minQuantityTickSize가 `0.001`이고 수량이 `0.0011`인 주문 제출은 거부됩니다.

파생상품 마켓은 UI와 체인 간에 minQuantityTickSize에 대해 동일한 형식을 공유하므로 포맷팅이 필요하지 않습니다.

## 현물 마켓

1. UI 사람이 읽을 수 있는 형식에서 체인 형식으로:
18개의 base decimals와 6개의 quote decimals를 가진 INJ/USDT 마켓을 예로 들어, 값을 체인 형식으로 변환하는 방법은 다음과 같습니다:

```js
import { toChainFormat } from "@injectivelabs/utils";

const chainFormat = toChainFormat(value, baseDecimals).toFixed();
```

2. 체인 형식에서 UI 사람이 읽을 수 있는 형식으로:
18개의 base decimals와 6개의 quote decimals를 가진 INJ/USDT 마켓을 예로 들어, 값을 UI 사람이 읽을 수 있는 형식으로 변환하는 방법은 다음과 같습니다:

```js
import { toHumanReadable } from "@injectivelabs/utils";

const humanReadableFormat = toHumanReadable(
minQuantityTickSize,
baseDecimals
).toFixed();
```
107 changes: 107 additions & 0 deletions .gitbook/ko/developers/concepts/cosmjs-support.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
---
title: CosmJs 지원
---
Injective는 `@cosmjs` 패키지에서 네이티브로 지원되지 않습니다. Injective와 상호작용하려면 `@injectivelabs` 패키지를 사용하는 것이 강력히 권장됩니다.
`@cosmjs` 패키지에 익숙하다면, `@cosmjs`의 클래스와 동일하게 작동하지만 Injective도 지원하는 유사한 인터페이스/클래스를 내보내고 있습니다.
다시 말해, 권장되는 접근 방식은 [Cosmos 트랜잭션](../../developers-native/transactions/cosmos/)에서 자세히 알아볼 수 있는 Injective의 표준 접근 방식을 사용하는 것입니다.

## Keplr 사용
다음은 Keplr와 함께 `@cosmjs` 패키지의 `@injectivelabs` 대안을 사용하는 방법에 대한 예제입니다:
```ts
import {
PrivateKey,
InjectiveStargate,
} from "@injectivelabs/sdk-ts/cosmjs";
import { OfflineDirectSigner } from "@cosmjs/proto-signing";
import { assertIsBroadcastTxSuccess } from '@cosmjs/stargate'
(async () => {
// Keplr 활성화
await window.keplr.enable(chainId);
// offline signer 가져오기
const offlineSigner = window.getOfflineSigner(chainId);
const [account] = await offlineSigner.getAccounts();
// stargate 클라이언트 초기화
const client =
await InjectiveStargate.InjectiveSigningStargateClient.connectWithSigner(
"https://lcd-cosmoshub.keplr.app/rest",
offlineSigner,
);
})
const amount = {
denom: "inj",
amount: amount.toString(),
};
const fee = {
amount: [
{
denom: "inj",
amount: "5000000000000000",
},
],
gas: "200000",
};
const result = await client.sendTokens(
account.address,
recipient,
[amount],
fee,
""
);
assertIsBroadcastTxSuccess(result);
if (result.code !== undefined && result.code !== 0) {
alert("tx 전송 실패: " + result.log || result.rawLog);
} else {
alert("tx 전송 성공:" + result.transactionHash);
}
})()
```

## CLI/Node 환경에서 사용
다음은 node 또는 CLI 환경에서 `@cosmjs` 패키지의 `@injectivelabs` 대안을 사용하는 방법에 대한 예제입니다.
다시 말해, 권장되는 접근 방식은 Injective의 표준 접근 방식을 따르는 [MsgBroadcasterWithPk](../../developers-native/transactions/private-key/#example-with-msgbroadcasterwithpk) 추상화를 사용하는 것입니다.
```ts
import {
PrivateKey,
InjectiveStargate,
InjectiveDirectEthSecp256k1Wallet,
} from "@injectivelabs/sdk-ts/cosmjs";
import { getStdFee } from "@injectivelabs/utils";
import { OfflineDirectSigner } from "@cosmjs/proto-signing";
import { Network, getNetworkInfo } from "@injectivelabs/networks";
(async () => {
const network = getNetworkInfo(Network.Testnet);
const privateKeyHash = process.env.PRIVATE_KEY as string;
const privateKey = PrivateKey.fromHex(privateKeyHash);
const injectiveAddress = privateKey.toBech32();
const wallet = (await InjectiveDirectEthSecp256k1Wallet.fromKey(
Buffer.from(privateKeyHash, "hex")
)) as OfflineDirectSigner;
const [account] = await wallet.getAccounts();
const client =
await InjectiveStargate.InjectiveSigningStargateClient.connectWithSigner(
network.rpc as string,
wallet
);
const recipient = injectiveAddress;
const amount = {
denom: "inj",
amount: "1000000000",
};
const txResponse = await client.sendTokens(
account.address,
recipient,
[amount],
getStdFee(),
"Have fun with your star coins"
);
if (txResponse.code !== 0) {
console.log(`트랜잭션 실패: ${txResponse.rawLog}`);
} else {
console.log(
`브로드캐스트된 트랜잭션 해시: ${JSON.stringify(
txResponse.transactionHash
)}`
);
}
})();
```
Loading