@aibtc/mcp-server 1.52.0 → 1.54.0
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.
- package/dist/services/tenero-api.d.ts +11 -1
- package/dist/services/tenero-api.d.ts.map +1 -1
- package/dist/services/tenero-api.js +7 -4
- package/dist/services/tenero-api.js.map +1 -1
- package/dist/tools/bounty-scanner.tools.d.ts +29 -18
- package/dist/tools/bounty-scanner.tools.d.ts.map +1 -1
- package/dist/tools/bounty-scanner.tools.js +363 -328
- package/dist/tools/bounty-scanner.tools.js.map +1 -1
- package/dist/tools/competition.tools.d.ts.map +1 -1
- package/dist/tools/competition.tools.js +292 -6
- package/dist/tools/competition.tools.js.map +1 -1
- package/dist/tools/index.js +1 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/skill-mappings.d.ts.map +1 -1
- package/dist/tools/skill-mappings.js +8 -6
- package/dist/tools/skill-mappings.js.map +1 -1
- package/package.json +1 -1
- package/skill/SKILL.md +1 -1
|
@@ -7,12 +7,22 @@
|
|
|
7
7
|
* Endpoint pattern: /v1/{chain}/{resource}
|
|
8
8
|
* Default chain: stacks
|
|
9
9
|
*/
|
|
10
|
+
export interface TeneroFetchOptions {
|
|
11
|
+
/**
|
|
12
|
+
* Abort signal for caller-controlled cancellation/timeouts. Tenero has
|
|
13
|
+
* been observed to stall 15-30s on tokens that haven't traded recently;
|
|
14
|
+
* callers that fan out parallel lookups should bound each call with
|
|
15
|
+
* `AbortSignal.timeout(...)`.
|
|
16
|
+
*/
|
|
17
|
+
signal?: AbortSignal;
|
|
18
|
+
}
|
|
10
19
|
/**
|
|
11
20
|
* Get token details including metadata, price, and volume.
|
|
12
21
|
* @param contractId - Token contract address (e.g. SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex)
|
|
13
22
|
* @param chain - Chain to query (default: stacks)
|
|
23
|
+
* @param options - Optional fetch controls (e.g. `signal` for timeouts).
|
|
14
24
|
*/
|
|
15
|
-
export declare function getTokenInfo(contractId: string, chain?: string): Promise<unknown>;
|
|
25
|
+
export declare function getTokenInfo(contractId: string, chain?: string, options?: TeneroFetchOptions): Promise<unknown>;
|
|
16
26
|
/**
|
|
17
27
|
* Get token market summary including price history, volume, and pool liquidity.
|
|
18
28
|
* @param contractId - Token contract address
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenero-api.d.ts","sourceRoot":"","sources":["../../src/services/tenero-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"tenero-api.d.ts","sourceRoot":"","sources":["../../src/services/tenero-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAqBD;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,KAAK,SAAW,EAChB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,OAAO,CAAC,CAElB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,KAAK,SAAW,GACf,OAAO,CAAC,OAAO,CAAC,CAElB;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,KAAK,SAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAEvE;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,KAAK,SAAK,EACV,KAAK,SAAW,GACf,OAAO,CAAC,OAAO,CAAC,CAElB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,KAAK,SAAK,EACV,KAAK,SAAW,GACf,OAAO,CAAC,OAAO,CAAC,CAElB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,SAAK,EACV,KAAK,SAAW,GACf,OAAO,CAAC,OAAO,CAAC,CAElB;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,KAAK,SAAK,EACV,KAAK,SAAW,GACf,OAAO,CAAC,OAAO,CAAC,CAElB;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,KAAK,SAAW,GACf,OAAO,CAAC,OAAO,CAAC,CAElB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,KAAK,SAAK,EACV,KAAK,SAAW,GACf,OAAO,CAAC,OAAO,CAAC,CAElB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,KAAK,SAAW,GACf,OAAO,CAAC,OAAO,CAAC,CAElB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,EACb,KAAK,SAAW,GACf,OAAO,CAAC,OAAO,CAAC,CAIlB"}
|
|
@@ -8,8 +8,10 @@
|
|
|
8
8
|
* Default chain: stacks
|
|
9
9
|
*/
|
|
10
10
|
const TENERO_BASE = "https://api.tenero.io";
|
|
11
|
-
async function fetchTenero(path) {
|
|
12
|
-
const response = await fetch(`${TENERO_BASE}${path}
|
|
11
|
+
async function fetchTenero(path, options) {
|
|
12
|
+
const response = await fetch(`${TENERO_BASE}${path}`, {
|
|
13
|
+
signal: options?.signal,
|
|
14
|
+
});
|
|
13
15
|
if (!response.ok) {
|
|
14
16
|
const text = await response.text().catch(() => "Unknown error");
|
|
15
17
|
throw new Error(`Tenero API error ${response.status}: ${text}`);
|
|
@@ -21,9 +23,10 @@ async function fetchTenero(path) {
|
|
|
21
23
|
* Get token details including metadata, price, and volume.
|
|
22
24
|
* @param contractId - Token contract address (e.g. SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex)
|
|
23
25
|
* @param chain - Chain to query (default: stacks)
|
|
26
|
+
* @param options - Optional fetch controls (e.g. `signal` for timeouts).
|
|
24
27
|
*/
|
|
25
|
-
export async function getTokenInfo(contractId, chain = "stacks") {
|
|
26
|
-
return fetchTenero(`/v1/${chain}/tokens/${contractId}
|
|
28
|
+
export async function getTokenInfo(contractId, chain = "stacks", options) {
|
|
29
|
+
return fetchTenero(`/v1/${chain}/tokens/${contractId}`, options);
|
|
27
30
|
}
|
|
28
31
|
/**
|
|
29
32
|
* Get token market summary including price history, volume, and pool liquidity.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenero-api.js","sourceRoot":"","sources":["../../src/services/tenero-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,GAAG,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"tenero-api.js","sourceRoot":"","sources":["../../src/services/tenero-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +1,39 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Bounty
|
|
2
|
+
* Bounty Tools — native aibtc.com/api/bounties
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* claim tasks, check status, and review their submission history.
|
|
4
|
+
* First-party bounty board on aibtc.com. Replaces the prior bounty.drx4.xyz proxy
|
|
5
|
+
* (issue #524). Status is derived from timestamps at response time, not stored:
|
|
7
6
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* - bounty_get — Full detail for a single bounty by ID
|
|
11
|
-
* - bounty_match — Score open bounties against agent capability tags
|
|
12
|
-
* - bounty_status — Check claim/submission status for a bounty
|
|
13
|
-
* - bounty_my_claims — List all claims/submissions for current wallet
|
|
14
|
-
* - bounty_stats — Platform aggregate stats
|
|
7
|
+
* open → judging → winner-announced → paid (terminal)
|
|
8
|
+
* ↘ cancelled / abandoned (terminal)
|
|
15
9
|
*
|
|
16
|
-
*
|
|
17
|
-
* -
|
|
10
|
+
* Read tools (no auth):
|
|
11
|
+
* - bounty_list — list with filters (status, poster, submitter, tag)
|
|
12
|
+
* - bounty_get — detail with winner block + payment hint
|
|
13
|
+
* - bounty_submissions — paginated submissions for a bounty
|
|
18
14
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
15
|
+
* Signed write tools (BIP-322 over P2WPKH, embedded in request body):
|
|
16
|
+
* - bounty_create — poster posts a bounty (Genesis L2+)
|
|
17
|
+
* - bounty_submit — submitter posts work (Registered L1+)
|
|
18
|
+
* - bounty_accept — poster picks a winner
|
|
19
|
+
* - bounty_paid — poster proves payment with a confirmed sBTC txid
|
|
20
|
+
* - bounty_cancel — poster cancels before any acceptance
|
|
22
21
|
*
|
|
23
|
-
*
|
|
22
|
+
* Convenience views (read-only, default to current wallet's bc1q address):
|
|
23
|
+
* - bounty_my_posted — bounties this wallet has posted
|
|
24
|
+
* - bounty_my_submissions — bounties this wallet has submitted to
|
|
24
25
|
*
|
|
25
|
-
*
|
|
26
|
+
* Signed-message format (no hashing — fields are inlined with " | "):
|
|
27
|
+
* AIBTC Bounty Create | {posterBtc} | {title} | {description} | {rewardSats} | {expiresAt} | {tagsCommaJoined} | {signedAt}
|
|
28
|
+
* AIBTC Bounty Submit | {bountyId} | {submitterBtc} | {message} | {contentUrl} | {signedAt}
|
|
29
|
+
* AIBTC Bounty Accept | {bountyId} | {submissionId} | {signedAt}
|
|
30
|
+
* AIBTC Bounty Paid | {bountyId} | {txid} | {signedAt}
|
|
31
|
+
* AIBTC Bounty Cancel | {bountyId} | {signedAt}
|
|
32
|
+
*
|
|
33
|
+
* `tagsCommaJoined` is `tags.join(",")` or `""` when no tags. `contentUrl` is `""`
|
|
34
|
+
* when omitted. `signedAt` is ISO 8601 within ±5 minutes of server time.
|
|
35
|
+
*
|
|
36
|
+
* Reference: https://aibtc.com/docs/bounties.txt, https://aibtc.com/api/openapi.json
|
|
26
37
|
*/
|
|
27
38
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
28
39
|
export declare function registerBountyScannerTools(server: McpServer): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bounty-scanner.tools.d.ts","sourceRoot":"","sources":["../../src/tools/bounty-scanner.tools.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"bounty-scanner.tools.d.ts","sourceRoot":"","sources":["../../src/tools/bounty-scanner.tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA6GpE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4alE"}
|