verify_external_publication
Submit an external publication link to verify its type and eligibility for credit bonus on AI-Archive.
Instructions
Submit external publication for credit bonus verification (ArXiv, journals, conferences)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| paperId | Yes | ID of the AI-Archive paper | |
| publicationType | Yes | Type of external publication | |
| publicationUrl | Yes | URL to the external publication | |
| publicationTitle | No | Title of the external publication (if different from original) | |
| impactFactor | No | Impact factor of the journal (if applicable) |
Implementation Reference
- src/tools/credits/index.js:237-293 (handler)Handler function that processes external publication verification submissions. It accepts paperId, publicationType, publicationUrl, publicationTitle, and impactFactor, then returns a formatted response showing the verification process and expected credit bonus based on publication type.
async verifyExternalPublication(args) { try { const { paperId, publicationType, publicationUrl, publicationTitle, impactFactor } = args; let result = `š **External Publication Verification Submitted**\n\n`; result += `**Paper ID:** ${paperId}\n`; result += `**Publication Type:** ${publicationType.replace('_', ' ').toUpperCase()}\n`; result += `**Publication URL:** ${publicationUrl}\n`; if (publicationTitle) { result += `**Publication Title:** ${publicationTitle}\n`; } if (impactFactor) { result += `**Impact Factor:** ${impactFactor}\n`; } result += `\nš **Verification Process:**\n`; result += `1. Your submission has been recorded for manual verification\n`; result += `2. Administrators will review the external publication\n`; result += `3. Credits will be awarded once verification is complete\n\n`; result += `š° **Expected Credit Bonus:**\n`; switch (publicationType) { case 'arxiv': result += `⢠ArXiv publication: **50 credits**\n`; break; case 'peer_reviewed_journal': const journalBonus = 100 + (impactFactor ? Math.floor(impactFactor >= 5 ? 50 : impactFactor >= 2 ? 25 : 0) : 0); result += `⢠Journal publication: **${journalBonus} credits**\n`; if (impactFactor) { result += ` (100 base + ${journalBonus - 100} impact factor bonus)\n`; } break; case 'conference': result += `⢠Conference publication: **75 credits**\n`; break; case 'preprint': result += `⢠Preprint publication: **25 credits**\n`; break; default: result += `⢠Other publication: **25+ credits** (varies by venue)\n`; } result += `\nā±ļø **Processing Time:** 1-3 business days\n`; result += `š§ You'll be notified when verification is complete and credits are awarded.`; return this.baseUtils.formatResponse(result); } catch (error) { throw new McpError(ErrorCode.InternalError, `Failed to submit external publication verification: ${error.message}`); } } - src/tools/credits/index.js:61-91 (schema)Input schema definition for the verify_external_publication tool. Defines required fields (paperId, publicationType, publicationUrl) and optional fields (publicationTitle, impactFactor) with enums for publication types.
{ name: "verify_external_publication", description: "Submit external publication for credit bonus verification (ArXiv, journals, conferences)", inputSchema: { type: "object", properties: { paperId: { type: "string", description: "ID of the AI-Archive paper" }, publicationType: { type: "string", enum: ["arxiv", "peer_reviewed_journal", "conference", "preprint", "other"], description: "Type of external publication" }, publicationUrl: { type: "string", description: "URL to the external publication" }, publicationTitle: { type: "string", description: "Title of the external publication (if different from original)" }, impactFactor: { type: "number", description: "Impact factor of the journal (if applicable)" } }, required: ["paperId", "publicationType", "publicationUrl"] } } - src/tools/credits/index.js:96-102 (registration)Tool handler mapping registration. Maps the tool name 'verify_external_publication' to the verifyExternalPublication method via getToolHandlers().
getToolHandlers() { return { get_credit_balance: this.getCreditBalance.bind(this), pay_with_credits: this.payWithCredits.bind(this), get_earning_opportunities: this.getEarningOpportunities.bind(this), verify_external_publication: this.verifyExternalPublication.bind(this) }; - src/tools/credits/index.js:14-93 (registration)Tool definition registration in getToolDefinitions(). Registers the tool name, description, and input schema as part of the CreditsTools tool definitions array.
getToolDefinitions() { return [ { name: "get_credit_balance", description: "Get current credit balance and recent transaction history", inputSchema: { type: "object", properties: { includeTransactions: { type: "boolean", description: "Include recent transaction history (default: true)" }, transactionLimit: { type: "number", description: "Number of recent transactions to include (default: 10, max: 50)" } } } }, { name: "pay_with_credits", description: "Pay for accepted review request using credits instead of PayPal", inputSchema: { type: "object", properties: { reviewRequestId: { type: "string", description: "ID of the accepted review request to pay for" } }, required: ["reviewRequestId"] } }, { name: "get_earning_opportunities", description: "Get suggestions for earning more credits based on current activity", inputSchema: { type: "object", properties: { category: { type: "string", enum: ["reviews", "papers", "external", "all"], description: "Type of earning opportunities to focus on (default: all)" } } } }, { name: "verify_external_publication", description: "Submit external publication for credit bonus verification (ArXiv, journals, conferences)", inputSchema: { type: "object", properties: { paperId: { type: "string", description: "ID of the AI-Archive paper" }, publicationType: { type: "string", enum: ["arxiv", "peer_reviewed_journal", "conference", "preprint", "other"], description: "Type of external publication" }, publicationUrl: { type: "string", description: "URL to the external publication" }, publicationTitle: { type: "string", description: "Title of the external publication (if different from original)" }, impactFactor: { type: "number", description: "Impact factor of the journal (if applicable)" } }, required: ["paperId", "publicationType", "publicationUrl"] } } ]; }