okfindex

Search Open Knowledge Format (OKF) bundles, read a bundle card and submit your own with IndexNow.

사용해야 할까요

품질 및 안전성

B
설명 품질
90%
스키마 완전성
59%
이름 품질
89%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (1)

  • LOWTool 'api_index' description lacks action verbapi_index에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~1,305토큰 (도구 정의)
~1.1 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.02%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "okfindex": {
      "url": "https://okfindex.com/mcp"
    }
  }
}

원격 엔드포인트

https://okfindex.com/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (7)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢api_index

Index of the OKF Index API: routes, quota (none) and how to plug the MCP.

입력 스키마

{
  "type": "object",
  "properties": {}
}
🟢search_bundles(q, origin, repo, version, language, ...)

Search the index of OKF bundles: free text over name, tagline, description and origin; filter by provenance (github|domain), repository, version, language, license, root type or concept count; search root concept text. Paginate with limit/offset. Only `live` bundles. Free text matches the name, the tagline, the description and the origin identifier (`owner/repo:path` or the bundle URL). No `total` on purpose: `GET /api/okf/stats` has it.

입력 스키마

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Free text over name, tagline, description and origin identifier."
    },
    "origin": {
      "type": "string",
      "description": "Provenance: found by the GitHub sweep, or submitted by a domain.",
      "enum": [
        "github",
        "domain"
      ]
    },
    "repo": {
      "type": "string",
      "description": "Only bundles of one repository, `owner/repo` (case-insensitive)."
    },
    "version": {
      "type": "string",
      "description": "Only bundles declaring one of these `okf_version` values; comma-separated, up to 5."
    },
    "language": {
      "type": "string",
      "description": "Only bundles whose repository language is one of these; comma-separated, up to 5 (GitHub bundles)."
    },
    "concept": {
      "type": "string",
      "description": "Text in the indexed root content, including listed concept names and summaries (first 1000 characters); up to 80 characters."
    },
    "concepts": {
      "type": "string",
      "description": "Number of entries listed by the root. Up to 5 comma-separated bands: 0,1-5,6-20,21-100,101+."
    },
    "type": {
      "type": "string",
      "description": "Type declared by the root, not the types of every concept. Up to 5 comma-separated values, 40 characters each."
    },
    "license": {
      "type": "string",
      "description": "Repository license. Up to 5 comma-separated values, 40 characters each."
    },
    "sort": {
      "type": "string",
      "description": "Result order: arrival, last content change, name or repository stars.",
      "enum": [
        "recent",
        "updated",
        "name",
        "stars"
      ],
      "default": "recent"
    },
    "limit": {
      "type": "integer",
      "description": "Bundles per page, at most 100.",
      "default": 24
    },
    "offset": {
      "type": "integer",
      "description": "How many bundles to skip. Use `next_offset` from the previous response; the list ends at 1000.",
      "default": 0
    }
  }
}
🟢get_bundle(id)

One bundle's card: root index.md URL, version, concept count, provenance and repository signal. `live` and `low` (example or fixture bundles kept out of the search) both answer here.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Bundle id, the `id` of every item in the list."
    }
  },
  "required": [
    "id"
  ]
}
🟢index_stats

Size of the index by provenance and when it last changed.

입력 스키마

{
  "type": "object",
  "properties": {}
}
🟡submit_bundles(urlList, host, key, keyLocation)

Queue bundle root URLs served by a host you own. IndexNow rules: the key file at https://<host>/<key>.txt has to match, the answer is 202, and nothing of yours is read before the collector checks that file. No account, no payment: ownership is proved by a key file on the host, exactly as IndexNow does it. Host `https://<host>/<key>.txt` containing the key (or point `keyLocation` at another path on the SAME host), then send the bundle URLs. We answer **202**: the key has not been checked yet. Verification and reading happen on our collector, never at the edge — so nothing is published, and no URL of yours is fetched, before the key matches. Re-sending a URL is how you say the bundle changed; it goes back in line to be re-read. At most 100 URLs per request and 200 per host per UTC day. Bundles in public GitHub repositories need no ping: the sweep finds them.

입력 스키마

{
  "type": "object",
  "properties": {
    "urlList": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The bundle roots (`index.md` files): https, on `host`, ending in .md — any path, since the spec fixes none."
    },
    "host": {
      "type": "string",
      "description": "The domain that serves the bundles and the key file."
    },
    "key": {
      "type": "string",
      "description": "The IndexNow key: 8 to 128 characters of [a-zA-Z0-9-]."
    },
    "keyLocation": {
      "type": "string",
      "description": "Alternative location of the key file, on the SAME host. Default: `https://<host>/<key>.txt`."
    }
  },
  "required": [
    "host",
    "key",
    "urlList"
  ]
}
🟢pricing

Current public prices and free allowances; no charge.

입력 스키마

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢billing

Payment discovery and billing summary; does not create a charge.

입력 스키마

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 7개